{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notebook written by [Zhedong Zheng](https://github.com/zhedongzheng)\n",
    "\n",
    "![title](dcgan.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "from sklearn.utils import shuffle\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class DCGAN:\n",
    "    def __init__(self, G_size, img_size, img_ch, shape_trace, kernel_size=(5, 5), strides=(2, 2)):\n",
    "        self.G_size = G_size\n",
    "        self.img_size = img_size\n",
    "        self.img_ch = img_ch\n",
    "        self.shape_trace = shape_trace\n",
    "        self.kernel_size = kernel_size\n",
    "        self.strides = strides\n",
    "        self.build_graph()\n",
    "\n",
    "\n",
    "    def build_graph(self):\n",
    "        self.add_input_layer()\n",
    "        with tf.variable_scope('G'):\n",
    "            self.G_out = self.generate(self.G_in)\n",
    "        with tf.variable_scope('D'):\n",
    "            self.G_logits = self.discriminate(self.G_out)\n",
    "            self.X_logits = self.discriminate(self.X_in, reuse=True)\n",
    "            self.G_prob = tf.sigmoid(self.G_logits)\n",
    "            self.X_prob = tf.sigmoid(self.X_logits)\n",
    "        self.add_backward_path()\n",
    "\n",
    "\n",
    "    def add_input_layer(self):\n",
    "        self.G_in = tf.placeholder(tf.float32, [None, self.G_size])\n",
    "        self.X_in = tf.placeholder(tf.float32, [None, self.img_size[0],\n",
    "                                                      self.img_size[1],\n",
    "                                                      self.img_ch])\n",
    "        self.train_flag = tf.placeholder(tf.bool)\n",
    "\n",
    "\n",
    "    def add_backward_path(self):\n",
    "        ones = tf.ones_like(self.G_logits)\n",
    "        zeros = tf.zeros_like(self.G_logits)\n",
    "\n",
    "        self.G_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=ones,\n",
    "                                                                             logits=self.G_logits))\n",
    "        D_loss_X = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=ones,\n",
    "                                                                          logits=self.X_logits))\n",
    "        D_loss_G = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=zeros,\n",
    "                                                                          logits=self.G_logits))\n",
    "        self.D_loss = D_loss_X + D_loss_G\n",
    "\n",
    "        with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS, scope='G')):\n",
    "            self.G_train = tf.train.AdamOptimizer(2e-4, beta1=0.5).minimize(\n",
    "                self.G_loss, var_list=tf.trainable_variables('G'))\n",
    "\n",
    "        with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS, scope='D')):\n",
    "            self.D_train = tf.train.AdamOptimizer(2e-4, beta1=0.5).minimize(\n",
    "                self.D_loss, var_list=tf.trainable_variables('D'))\n",
    "\n",
    "        self.mse = tf.reduce_mean(tf.squared_difference(self.G_out, self.X_in))\n",
    "\n",
    "\n",
    "    def generate(self, x):\n",
    "        # for example: 100 -> (7, 7, 128) ->  (14, 14, 64) -> (28, 28, 1)\n",
    "        x = tf.layers.dense(x, np.prod(self.shape_trace[0]), tf.nn.leaky_relu)\n",
    "        x = tf.reshape(x, [-1, self.shape_trace[0][0],\n",
    "                               self.shape_trace[0][1],\n",
    "                               self.shape_trace[0][2]])\n",
    "        for s in self.shape_trace[1:]:\n",
    "            x = tf.layers.conv2d_transpose(x,\n",
    "                                           s[-1],\n",
    "                                           self.kernel_size,\n",
    "                                           strides=self.strides,\n",
    "                                           padding='same')\n",
    "            x = tf.layers.batch_normalization(x,\n",
    "                                              training=self.train_flag,\n",
    "                                              momentum=0.9)\n",
    "            x = tf.nn.leaky_relu(x)\n",
    "        x = tf.layers.conv2d_transpose(x,\n",
    "                                       self.img_ch,\n",
    "                                       self.kernel_size,\n",
    "                                       strides=self.strides,\n",
    "                                       padding='same')\n",
    "        return tf.tanh(x)\n",
    "\n",
    "\n",
    "    def discriminate(self, x, reuse=False):\n",
    "        # for example: (28, 28, 1) -> (14, 14, 64) -> (7, 7, 128) -> 1\n",
    "        for i, s in enumerate(list(reversed(self.shape_trace))):\n",
    "            x = tf.layers.conv2d(x,\n",
    "                                 s[-1],\n",
    "                                 self.kernel_size,\n",
    "                                 strides=self.strides,\n",
    "                                 padding='same',\n",
    "                                 name='cnn%d'%i,\n",
    "                                 reuse=reuse)\n",
    "            x = tf.layers.batch_normalization(x,\n",
    "                                              training=self.train_flag,\n",
    "                                              name='bn%d'%i, reuse=reuse,\n",
    "                                              momentum=0.9)\n",
    "            x = tf.nn.leaky_relu(x)\n",
    "        x = tf.layers.dense(tf.layers.flatten(x), 1, name='output', reuse=reuse)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gen_batch(arr, batch_size):\n",
    "    for i in range(0, len(arr), batch_size):\n",
    "        yield arr[i : i+batch_size]\n",
    "\n",
    "\n",
    "def tanh_scaled(images):\n",
    "    return (images.astype(np.float32) - (255./2)) / (255./2)\n",
    "\n",
    "\n",
    "def select(images, labels, num):\n",
    "    return np.expand_dims(images, 3)[labels == num]\n",
    "\n",
    "\n",
    "def experiment(N_EPOCH, BATCH_SIZE, G_SIZE, DIGIT):    \n",
    "    (X_train, y_train), (_, _) = tf.keras.datasets.mnist.load_data()\n",
    "    X = select(tanh_scaled(X_train), y_train, DIGIT)\n",
    "    \n",
    "    gan = DCGAN(G_SIZE, (28, 28), 1, shape_trace=[(7, 7, 128),\n",
    "                                                  (14, 14, 64)])\n",
    "    sess = tf.Session()\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    \n",
    "    for i, epoch in enumerate(range(N_EPOCH)):\n",
    "        X = shuffle(X)\n",
    "        for step, images in enumerate(gen_batch(X, BATCH_SIZE)):\n",
    "            noise = np.random.randn(images.shape[0], G_SIZE)\n",
    "\n",
    "            sess.run(gan.D_train, {gan.G_in: noise,\n",
    "                                   gan.X_in: images,\n",
    "                                   gan.train_flag: True})\n",
    "            for _ in range(2):\n",
    "                sess.run(gan.G_train, {gan.G_in: noise,\n",
    "                                       gan.train_flag: True})\n",
    "\n",
    "            G_loss, D_loss, D_prob, G_prob, mse = sess.run([gan.G_loss,\n",
    "                                                            gan.D_loss,\n",
    "                                                            gan.X_prob,\n",
    "                                                            gan.G_prob,\n",
    "                                                            gan.mse],\n",
    "                                                           {gan.G_in: noise,\n",
    "                                                            gan.X_in: images,\n",
    "                                                            gan.train_flag: False})\n",
    "            \n",
    "            print(\"Epoch %d/%d | Step %d/%d\" % (epoch+1, N_EPOCH, step, len(X)//BATCH_SIZE))\n",
    "            print(\"G loss: %.4f | D loss: %.4f | D prob: %.4f | G prob: %.4f | mse: %.4f\" %\n",
    "                 (G_loss, D_loss, D_prob.mean(), G_prob.mean(), mse))\n",
    "    \n",
    "    img = sess.run(gan.G_out, {gan.G_in: noise, gan.train_flag: False})[0]\n",
    "    plt.imshow(np.squeeze(img))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20 | Step 0/45\n",
      "G loss: 0.7103 | D loss: 1.3192 | D prob: 0.5260 | G prob: 0.4915 | mse: 0.9098\n",
      "Epoch 1/20 | Step 1/45\n",
      "G loss: 0.7372 | D loss: 1.2812 | D prob: 0.5328 | G prob: 0.4784 | mse: 0.9096\n",
      "Epoch 1/20 | Step 2/45\n",
      "G loss: 0.7800 | D loss: 1.2671 | D prob: 0.5207 | G prob: 0.4584 | mse: 0.9132\n",
      "Epoch 1/20 | Step 3/45\n",
      "G loss: 0.8430 | D loss: 1.2484 | D prob: 0.5050 | G prob: 0.4304 | mse: 0.9130\n",
      "Epoch 1/20 | Step 4/45\n",
      "G loss: 0.9305 | D loss: 1.2209 | D prob: 0.4886 | G prob: 0.3944 | mse: 0.9146\n",
      "Epoch 1/20 | Step 5/45\n",
      "G loss: 1.0401 | D loss: 1.2167 | D prob: 0.4606 | G prob: 0.3534 | mse: 0.9136\n",
      "Epoch 1/20 | Step 6/45\n",
      "G loss: 1.1521 | D loss: 1.1994 | D prob: 0.4441 | G prob: 0.3160 | mse: 0.9103\n",
      "Epoch 1/20 | Step 7/45\n",
      "G loss: 1.2480 | D loss: 1.1912 | D prob: 0.4305 | G prob: 0.2871 | mse: 0.9051\n",
      "Epoch 1/20 | Step 8/45\n",
      "G loss: 1.3365 | D loss: 1.1850 | D prob: 0.4217 | G prob: 0.2628 | mse: 0.9018\n",
      "Epoch 1/20 | Step 9/45\n",
      "G loss: 1.4146 | D loss: 1.1876 | D prob: 0.4128 | G prob: 0.2431 | mse: 0.8918\n",
      "Epoch 1/20 | Step 10/45\n",
      "G loss: 1.5090 | D loss: 1.1346 | D prob: 0.4247 | G prob: 0.2213 | mse: 0.8834\n",
      "Epoch 1/20 | Step 11/45\n",
      "G loss: 1.6271 | D loss: 1.0868 | D prob: 0.4348 | G prob: 0.1968 | mse: 0.8760\n",
      "Epoch 1/20 | Step 12/45\n",
      "G loss: 1.7526 | D loss: 1.0842 | D prob: 0.4351 | G prob: 0.1736 | mse: 0.8681\n",
      "Epoch 1/20 | Step 13/45\n",
      "G loss: 1.8835 | D loss: 1.0453 | D prob: 0.4414 | G prob: 0.1525 | mse: 0.8619\n",
      "Epoch 1/20 | Step 14/45\n",
      "G loss: 2.0974 | D loss: 1.0444 | D prob: 0.4362 | G prob: 0.1232 | mse: 0.8506\n",
      "Epoch 1/20 | Step 15/45\n",
      "G loss: 2.3270 | D loss: 1.0532 | D prob: 0.4181 | G prob: 0.0980 | mse: 0.8403\n",
      "Epoch 1/20 | Step 16/45\n",
      "G loss: 2.4768 | D loss: 1.0298 | D prob: 0.4326 | G prob: 0.0847 | mse: 0.8262\n",
      "Epoch 1/20 | Step 17/45\n",
      "G loss: 2.6072 | D loss: 1.0000 | D prob: 0.4483 | G prob: 0.0746 | mse: 0.8049\n",
      "Epoch 1/20 | Step 18/45\n",
      "G loss: 2.7153 | D loss: 0.8927 | D prob: 0.4863 | G prob: 0.0677 | mse: 0.7802\n",
      "Epoch 1/20 | Step 19/45\n",
      "G loss: 2.7079 | D loss: 1.1097 | D prob: 0.4087 | G prob: 0.0682 | mse: 0.7415\n",
      "Epoch 1/20 | Step 20/45\n",
      "G loss: 2.6072 | D loss: 1.1491 | D prob: 0.4099 | G prob: 0.0760 | mse: 0.7031\n",
      "Epoch 1/20 | Step 21/45\n",
      "G loss: 2.4345 | D loss: 1.1962 | D prob: 0.4028 | G prob: 0.0914 | mse: 0.6609\n",
      "Epoch 1/20 | Step 22/45\n",
      "G loss: 2.2838 | D loss: 1.4544 | D prob: 0.3290 | G prob: 0.1054 | mse: 0.6219\n",
      "Epoch 1/20 | Step 23/45\n",
      "G loss: 2.1917 | D loss: 1.3754 | D prob: 0.3574 | G prob: 0.1158 | mse: 0.5853\n",
      "Epoch 1/20 | Step 24/45\n",
      "G loss: 2.1497 | D loss: 1.3197 | D prob: 0.3840 | G prob: 0.1214 | mse: 0.5599\n",
      "Epoch 1/20 | Step 25/45\n",
      "G loss: 2.1323 | D loss: 1.5023 | D prob: 0.3379 | G prob: 0.1237 | mse: 0.5312\n",
      "Epoch 1/20 | Step 26/45\n",
      "G loss: 2.0096 | D loss: 1.5145 | D prob: 0.3450 | G prob: 0.1416 | mse: 0.5157\n",
      "Epoch 1/20 | Step 27/45\n",
      "G loss: 1.9039 | D loss: 1.4668 | D prob: 0.3756 | G prob: 0.1565 | mse: 0.5010\n",
      "Epoch 1/20 | Step 28/45\n",
      "G loss: 1.9812 | D loss: 1.7879 | D prob: 0.3028 | G prob: 0.1445 | mse: 0.4809\n",
      "Epoch 1/20 | Step 29/45\n",
      "G loss: 1.7881 | D loss: 1.7965 | D prob: 0.2844 | G prob: 0.1766 | mse: 0.4656\n",
      "Epoch 1/20 | Step 30/45\n",
      "G loss: 1.7091 | D loss: 2.0135 | D prob: 0.2584 | G prob: 0.1891 | mse: 0.4470\n",
      "Epoch 1/20 | Step 31/45\n",
      "G loss: 1.4332 | D loss: 1.9832 | D prob: 0.2769 | G prob: 0.2490 | mse: 0.4336\n",
      "Epoch 1/20 | Step 32/45\n",
      "G loss: 1.3298 | D loss: 1.8326 | D prob: 0.3297 | G prob: 0.2717 | mse: 0.4151\n",
      "Epoch 1/20 | Step 33/45\n",
      "G loss: 1.4593 | D loss: 2.3121 | D prob: 0.1970 | G prob: 0.2430 | mse: 0.3940\n",
      "Epoch 1/20 | Step 34/45\n",
      "G loss: 1.0187 | D loss: 1.6064 | D prob: 0.4222 | G prob: 0.3693 | mse: 0.3940\n",
      "Epoch 1/20 | Step 35/45\n",
      "G loss: 1.5999 | D loss: 2.5828 | D prob: 0.1622 | G prob: 0.2117 | mse: 0.3853\n",
      "Epoch 1/20 | Step 36/45\n",
      "G loss: 0.8657 | D loss: 1.5767 | D prob: 0.4590 | G prob: 0.4299 | mse: 0.3693\n",
      "Epoch 1/20 | Step 37/45\n",
      "G loss: 1.4968 | D loss: 2.6947 | D prob: 0.1460 | G prob: 0.2362 | mse: 0.3611\n",
      "Epoch 1/20 | Step 38/45\n",
      "G loss: 0.6730 | D loss: 1.6531 | D prob: 0.4954 | G prob: 0.5174 | mse: 0.3649\n",
      "Epoch 1/20 | Step 39/45\n",
      "G loss: 1.2652 | D loss: 2.5635 | D prob: 0.1636 | G prob: 0.2938 | mse: 0.3551\n",
      "Epoch 1/20 | Step 40/45\n",
      "G loss: 0.6921 | D loss: 1.8605 | D prob: 0.4109 | G prob: 0.5095 | mse: 0.3617\n",
      "Epoch 1/20 | Step 41/45\n",
      "G loss: 1.0355 | D loss: 2.0230 | D prob: 0.2539 | G prob: 0.3658 | mse: 0.3549\n",
      "Epoch 1/20 | Step 42/45\n",
      "G loss: 0.7826 | D loss: 1.8311 | D prob: 0.3572 | G prob: 0.4662 | mse: 0.3544\n",
      "Epoch 1/20 | Step 43/45\n",
      "G loss: 0.7984 | D loss: 1.8533 | D prob: 0.3572 | G prob: 0.4577 | mse: 0.3666\n",
      "Epoch 1/20 | Step 44/45\n",
      "G loss: 0.7951 | D loss: 1.8494 | D prob: 0.3378 | G prob: 0.4596 | mse: 0.3618\n",
      "Epoch 1/20 | Step 45/45\n",
      "G loss: 0.8505 | D loss: 1.9821 | D prob: 0.2852 | G prob: 0.4403 | mse: 0.3670\n",
      "Epoch 2/20 | Step 0/45\n",
      "G loss: 0.5058 | D loss: 1.6109 | D prob: 0.5631 | G prob: 0.6104 | mse: 0.3834\n",
      "Epoch 2/20 | Step 1/45\n",
      "G loss: 1.3494 | D loss: 2.7739 | D prob: 0.1058 | G prob: 0.2711 | mse: 0.3736\n",
      "Epoch 2/20 | Step 2/45\n",
      "G loss: 0.3697 | D loss: 1.7025 | D prob: 0.6650 | G prob: 0.6978 | mse: 0.3816\n",
      "Epoch 2/20 | Step 3/45\n",
      "G loss: 1.0437 | D loss: 2.2094 | D prob: 0.2060 | G prob: 0.3670 | mse: 0.3792\n",
      "Epoch 2/20 | Step 4/45\n",
      "G loss: 0.6427 | D loss: 1.7663 | D prob: 0.4275 | G prob: 0.5352 | mse: 0.3883\n",
      "Epoch 2/20 | Step 5/45\n",
      "G loss: 0.6756 | D loss: 1.9038 | D prob: 0.3647 | G prob: 0.5211 | mse: 0.3840\n",
      "Epoch 2/20 | Step 6/45\n",
      "G loss: 0.7487 | D loss: 1.9997 | D prob: 0.3072 | G prob: 0.4855 | mse: 0.3868\n",
      "Epoch 2/20 | Step 7/45\n",
      "G loss: 0.5620 | D loss: 1.7805 | D prob: 0.4642 | G prob: 0.5799 | mse: 0.3832\n",
      "Epoch 2/20 | Step 8/45\n",
      "G loss: 0.7470 | D loss: 2.0713 | D prob: 0.2951 | G prob: 0.4872 | mse: 0.3958\n",
      "Epoch 2/20 | Step 9/45\n",
      "G loss: 0.6462 | D loss: 1.9462 | D prob: 0.3569 | G prob: 0.5361 | mse: 0.3938\n",
      "Epoch 2/20 | Step 10/45\n",
      "G loss: 0.6397 | D loss: 1.8400 | D prob: 0.3932 | G prob: 0.5383 | mse: 0.3868\n",
      "Epoch 2/20 | Step 11/45\n",
      "G loss: 0.7729 | D loss: 2.0517 | D prob: 0.2906 | G prob: 0.4725 | mse: 0.3901\n",
      "Epoch 2/20 | Step 12/45\n",
      "G loss: 0.5821 | D loss: 1.7769 | D prob: 0.4396 | G prob: 0.5680 | mse: 0.3913\n",
      "Epoch 2/20 | Step 13/45\n",
      "G loss: 0.8516 | D loss: 2.0941 | D prob: 0.2677 | G prob: 0.4408 | mse: 0.3975\n",
      "Epoch 2/20 | Step 14/45\n",
      "G loss: 0.5462 | D loss: 1.8948 | D prob: 0.4389 | G prob: 0.5884 | mse: 0.3989\n",
      "Epoch 2/20 | Step 15/45\n",
      "G loss: 0.7926 | D loss: 2.0052 | D prob: 0.3061 | G prob: 0.4667 | mse: 0.4020\n",
      "Epoch 2/20 | Step 16/45\n",
      "G loss: 0.6887 | D loss: 1.8001 | D prob: 0.3988 | G prob: 0.5157 | mse: 0.4008\n",
      "Epoch 2/20 | Step 17/45\n",
      "G loss: 0.6776 | D loss: 1.9737 | D prob: 0.3420 | G prob: 0.5172 | mse: 0.3879\n",
      "Epoch 2/20 | Step 18/45\n",
      "G loss: 0.6635 | D loss: 1.9543 | D prob: 0.3532 | G prob: 0.5253 | mse: 0.4022\n",
      "Epoch 2/20 | Step 19/45\n",
      "G loss: 0.6386 | D loss: 1.7983 | D prob: 0.4107 | G prob: 0.5394 | mse: 0.4078\n",
      "Epoch 2/20 | Step 20/45\n",
      "G loss: 1.0580 | D loss: 2.2904 | D prob: 0.1938 | G prob: 0.3595 | mse: 0.3971\n",
      "Epoch 2/20 | Step 21/45\n",
      "G loss: 0.3390 | D loss: 1.8138 | D prob: 0.6436 | G prob: 0.7183 | mse: 0.3970\n",
      "Epoch 2/20 | Step 22/45\n",
      "G loss: 1.2871 | D loss: 2.7111 | D prob: 0.1151 | G prob: 0.2928 | mse: 0.4020\n",
      "Epoch 2/20 | Step 23/45\n",
      "G loss: 0.3846 | D loss: 1.7989 | D prob: 0.6093 | G prob: 0.6881 | mse: 0.4094\n",
      "Epoch 2/20 | Step 24/45\n",
      "G loss: 1.0276 | D loss: 2.1322 | D prob: 0.2243 | G prob: 0.3719 | mse: 0.4023\n",
      "Epoch 2/20 | Step 25/45\n",
      "G loss: 0.6073 | D loss: 1.5826 | D prob: 0.5044 | G prob: 0.5554 | mse: 0.4109\n",
      "Epoch 2/20 | Step 26/45\n",
      "G loss: 0.9686 | D loss: 1.7636 | D prob: 0.3253 | G prob: 0.3925 | mse: 0.4146\n",
      "Epoch 2/20 | Step 27/45\n",
      "G loss: 0.6398 | D loss: 1.6769 | D prob: 0.4568 | G prob: 0.5373 | mse: 0.4108\n",
      "Epoch 2/20 | Step 28/45\n",
      "G loss: 0.8998 | D loss: 1.9672 | D prob: 0.2821 | G prob: 0.4180 | mse: 0.4313\n",
      "Epoch 2/20 | Step 29/45\n",
      "G loss: 0.5661 | D loss: 1.7036 | D prob: 0.4770 | G prob: 0.5753 | mse: 0.4110\n",
      "Epoch 2/20 | Step 30/45\n",
      "G loss: 1.1094 | D loss: 2.0808 | D prob: 0.2209 | G prob: 0.3386 | mse: 0.4041\n",
      "Epoch 2/20 | Step 31/45\n",
      "G loss: 0.4649 | D loss: 1.6550 | D prob: 0.5791 | G prob: 0.6344 | mse: 0.4095\n",
      "Epoch 2/20 | Step 32/45\n",
      "G loss: 1.1031 | D loss: 1.9564 | D prob: 0.2478 | G prob: 0.3412 | mse: 0.3951\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 2/20 | Step 33/45\n",
      "G loss: 0.5204 | D loss: 1.5488 | D prob: 0.5761 | G prob: 0.5998 | mse: 0.3986\n",
      "Epoch 2/20 | Step 34/45\n",
      "G loss: 0.9862 | D loss: 1.8354 | D prob: 0.2968 | G prob: 0.3839 | mse: 0.4191\n",
      "Epoch 2/20 | Step 35/45\n",
      "G loss: 0.6337 | D loss: 1.6635 | D prob: 0.4554 | G prob: 0.5406 | mse: 0.4107\n",
      "Epoch 2/20 | Step 36/45\n",
      "G loss: 0.8867 | D loss: 1.7903 | D prob: 0.3319 | G prob: 0.4229 | mse: 0.4070\n",
      "Epoch 2/20 | Step 37/45\n",
      "G loss: 0.5966 | D loss: 1.5752 | D prob: 0.5146 | G prob: 0.5575 | mse: 0.4023\n",
      "Epoch 2/20 | Step 38/45\n",
      "G loss: 1.1137 | D loss: 1.9487 | D prob: 0.2441 | G prob: 0.3389 | mse: 0.4111\n",
      "Epoch 2/20 | Step 39/45\n",
      "G loss: 0.5062 | D loss: 1.4446 | D prob: 0.6424 | G prob: 0.6105 | mse: 0.4070\n",
      "Epoch 2/20 | Step 40/45\n",
      "G loss: 1.2169 | D loss: 1.8622 | D prob: 0.2546 | G prob: 0.3099 | mse: 0.4258\n",
      "Epoch 2/20 | Step 41/45\n",
      "G loss: 0.4926 | D loss: 1.4888 | D prob: 0.6313 | G prob: 0.6183 | mse: 0.4020\n",
      "Epoch 2/20 | Step 42/45\n",
      "G loss: 1.3398 | D loss: 2.1553 | D prob: 0.1867 | G prob: 0.2775 | mse: 0.4285\n",
      "Epoch 2/20 | Step 43/45\n",
      "G loss: 0.3217 | D loss: 1.6741 | D prob: 0.7412 | G prob: 0.7292 | mse: 0.4068\n",
      "Epoch 2/20 | Step 44/45\n",
      "G loss: 1.3201 | D loss: 2.1413 | D prob: 0.1844 | G prob: 0.2799 | mse: 0.4257\n",
      "Epoch 2/20 | Step 45/45\n",
      "G loss: 0.4968 | D loss: 1.5055 | D prob: 0.6181 | G prob: 0.6148 | mse: 0.4140\n",
      "Epoch 3/20 | Step 0/45\n",
      "G loss: 0.8220 | D loss: 1.5399 | D prob: 0.4228 | G prob: 0.4483 | mse: 0.4090\n",
      "Epoch 3/20 | Step 1/45\n",
      "G loss: 0.8824 | D loss: 1.6548 | D prob: 0.3702 | G prob: 0.4265 | mse: 0.3992\n",
      "Epoch 3/20 | Step 2/45\n",
      "G loss: 0.4947 | D loss: 1.4584 | D prob: 0.6441 | G prob: 0.6165 | mse: 0.4108\n",
      "Epoch 3/20 | Step 3/45\n",
      "G loss: 1.0865 | D loss: 1.7749 | D prob: 0.2926 | G prob: 0.3489 | mse: 0.4100\n",
      "Epoch 3/20 | Step 4/45\n",
      "G loss: 0.5706 | D loss: 1.5392 | D prob: 0.5410 | G prob: 0.5737 | mse: 0.4228\n",
      "Epoch 3/20 | Step 5/45\n",
      "G loss: 0.8934 | D loss: 1.7887 | D prob: 0.3190 | G prob: 0.4210 | mse: 0.4193\n",
      "Epoch 3/20 | Step 6/45\n",
      "G loss: 0.6010 | D loss: 1.5201 | D prob: 0.5289 | G prob: 0.5571 | mse: 0.3914\n",
      "Epoch 3/20 | Step 7/45\n",
      "G loss: 0.9891 | D loss: 1.7037 | D prob: 0.3212 | G prob: 0.3835 | mse: 0.4171\n",
      "Epoch 3/20 | Step 8/45\n",
      "G loss: 0.5306 | D loss: 1.5468 | D prob: 0.5641 | G prob: 0.5973 | mse: 0.3956\n",
      "Epoch 3/20 | Step 9/45\n",
      "G loss: 1.1172 | D loss: 1.8647 | D prob: 0.2592 | G prob: 0.3417 | mse: 0.3967\n",
      "Epoch 3/20 | Step 10/45\n",
      "G loss: 0.5000 | D loss: 1.5651 | D prob: 0.5794 | G prob: 0.6134 | mse: 0.3993\n",
      "Epoch 3/20 | Step 11/45\n",
      "G loss: 1.1267 | D loss: 1.8244 | D prob: 0.2630 | G prob: 0.3373 | mse: 0.4235\n",
      "Epoch 3/20 | Step 12/45\n",
      "G loss: 0.4817 | D loss: 1.4901 | D prob: 0.6276 | G prob: 0.6231 | mse: 0.4121\n",
      "Epoch 3/20 | Step 13/45\n",
      "G loss: 1.2298 | D loss: 2.0180 | D prob: 0.2165 | G prob: 0.3087 | mse: 0.4019\n",
      "Epoch 3/20 | Step 14/45\n",
      "G loss: 0.4354 | D loss: 1.5316 | D prob: 0.6496 | G prob: 0.6515 | mse: 0.4160\n",
      "Epoch 3/20 | Step 15/45\n",
      "G loss: 1.1712 | D loss: 1.8683 | D prob: 0.2482 | G prob: 0.3203 | mse: 0.4034\n",
      "Epoch 3/20 | Step 16/45\n",
      "G loss: 0.5522 | D loss: 1.5312 | D prob: 0.5496 | G prob: 0.5825 | mse: 0.4108\n",
      "Epoch 3/20 | Step 17/45\n",
      "G loss: 0.8971 | D loss: 1.6163 | D prob: 0.3656 | G prob: 0.4165 | mse: 0.4056\n",
      "Epoch 3/20 | Step 18/45\n",
      "G loss: 0.7761 | D loss: 1.5878 | D prob: 0.4117 | G prob: 0.4693 | mse: 0.4150\n",
      "Epoch 3/20 | Step 19/45\n",
      "G loss: 0.7838 | D loss: 1.5537 | D prob: 0.4182 | G prob: 0.4657 | mse: 0.4013\n",
      "Epoch 3/20 | Step 20/45\n",
      "G loss: 0.9047 | D loss: 1.6546 | D prob: 0.3511 | G prob: 0.4125 | mse: 0.3955\n",
      "Epoch 3/20 | Step 21/45\n",
      "G loss: 0.4900 | D loss: 1.5407 | D prob: 0.5931 | G prob: 0.6181 | mse: 0.4295\n",
      "Epoch 3/20 | Step 22/45\n",
      "G loss: 1.3134 | D loss: 1.9364 | D prob: 0.2181 | G prob: 0.2790 | mse: 0.4120\n",
      "Epoch 3/20 | Step 23/45\n",
      "G loss: 0.3604 | D loss: 1.6246 | D prob: 0.6940 | G prob: 0.7019 | mse: 0.4058\n",
      "Epoch 3/20 | Step 24/45\n",
      "G loss: 1.2476 | D loss: 1.8415 | D prob: 0.2417 | G prob: 0.2970 | mse: 0.4127\n",
      "Epoch 3/20 | Step 25/45\n",
      "G loss: 0.4733 | D loss: 1.5046 | D prob: 0.6308 | G prob: 0.6286 | mse: 0.4256\n",
      "Epoch 3/20 | Step 26/45\n",
      "G loss: 1.1681 | D loss: 1.7635 | D prob: 0.2678 | G prob: 0.3198 | mse: 0.4196\n",
      "Epoch 3/20 | Step 27/45\n",
      "G loss: 0.4891 | D loss: 1.4549 | D prob: 0.6345 | G prob: 0.6184 | mse: 0.4002\n",
      "Epoch 3/20 | Step 28/45\n",
      "G loss: 1.0586 | D loss: 1.5542 | D prob: 0.3493 | G prob: 0.3563 | mse: 0.4196\n",
      "Epoch 3/20 | Step 29/45\n",
      "G loss: 0.6651 | D loss: 1.4547 | D prob: 0.5088 | G prob: 0.5216 | mse: 0.4077\n",
      "Epoch 3/20 | Step 30/45\n",
      "G loss: 0.9316 | D loss: 1.4333 | D prob: 0.4226 | G prob: 0.4013 | mse: 0.4226\n",
      "Epoch 3/20 | Step 31/45\n",
      "G loss: 0.7647 | D loss: 1.4815 | D prob: 0.4549 | G prob: 0.4742 | mse: 0.4135\n",
      "Epoch 3/20 | Step 32/45\n",
      "G loss: 0.8006 | D loss: 1.5172 | D prob: 0.4275 | G prob: 0.4566 | mse: 0.4261\n",
      "Epoch 3/20 | Step 33/45\n",
      "G loss: 0.7785 | D loss: 1.4446 | D prob: 0.4765 | G prob: 0.4685 | mse: 0.4170\n",
      "Epoch 3/20 | Step 34/45\n",
      "G loss: 0.8009 | D loss: 1.4184 | D prob: 0.4698 | G prob: 0.4564 | mse: 0.4169\n",
      "Epoch 3/20 | Step 35/45\n",
      "G loss: 0.8719 | D loss: 1.4750 | D prob: 0.4243 | G prob: 0.4252 | mse: 0.4237\n",
      "Epoch 3/20 | Step 36/45\n",
      "G loss: 0.6727 | D loss: 1.4016 | D prob: 0.5289 | G prob: 0.5176 | mse: 0.4164\n",
      "Epoch 3/20 | Step 37/45\n",
      "G loss: 1.0719 | D loss: 1.6654 | D prob: 0.3126 | G prob: 0.3505 | mse: 0.4042\n",
      "Epoch 3/20 | Step 38/45\n",
      "G loss: 0.4226 | D loss: 1.5406 | D prob: 0.6522 | G prob: 0.6594 | mse: 0.4055\n",
      "Epoch 3/20 | Step 39/45\n",
      "G loss: 1.4008 | D loss: 1.9732 | D prob: 0.2081 | G prob: 0.2600 | mse: 0.4178\n",
      "Epoch 3/20 | Step 40/45\n",
      "G loss: 0.3244 | D loss: 1.6241 | D prob: 0.7498 | G prob: 0.7267 | mse: 0.3911\n",
      "Epoch 3/20 | Step 41/45\n",
      "G loss: 1.1724 | D loss: 1.7775 | D prob: 0.2680 | G prob: 0.3209 | mse: 0.4121\n",
      "Epoch 3/20 | Step 42/45\n",
      "G loss: 0.6039 | D loss: 1.5020 | D prob: 0.5231 | G prob: 0.5528 | mse: 0.4196\n",
      "Epoch 3/20 | Step 43/45\n",
      "G loss: 0.6925 | D loss: 1.4873 | D prob: 0.4909 | G prob: 0.5092 | mse: 0.4126\n",
      "Epoch 3/20 | Step 44/45\n",
      "G loss: 1.0340 | D loss: 1.5769 | D prob: 0.3491 | G prob: 0.3685 | mse: 0.4103\n",
      "Epoch 3/20 | Step 45/45\n",
      "G loss: 0.4777 | D loss: 1.4878 | D prob: 0.6268 | G prob: 0.6249 | mse: 0.4230\n",
      "Epoch 4/20 | Step 0/45\n",
      "G loss: 1.1315 | D loss: 1.7427 | D prob: 0.2852 | G prob: 0.3343 | mse: 0.4116\n",
      "Epoch 4/20 | Step 1/45\n",
      "G loss: 0.5057 | D loss: 1.4476 | D prob: 0.6356 | G prob: 0.6109 | mse: 0.4178\n",
      "Epoch 4/20 | Step 2/45\n",
      "G loss: 0.9375 | D loss: 1.4768 | D prob: 0.4007 | G prob: 0.3984 | mse: 0.4308\n",
      "Epoch 4/20 | Step 3/45\n",
      "G loss: 0.6665 | D loss: 1.3862 | D prob: 0.5471 | G prob: 0.5221 | mse: 0.4233\n",
      "Epoch 4/20 | Step 4/45\n",
      "G loss: 0.7846 | D loss: 1.4161 | D prob: 0.4740 | G prob: 0.4639 | mse: 0.4417\n",
      "Epoch 4/20 | Step 5/45\n",
      "G loss: 0.8335 | D loss: 1.4853 | D prob: 0.4283 | G prob: 0.4437 | mse: 0.4259\n",
      "Epoch 4/20 | Step 6/45\n",
      "G loss: 0.7410 | D loss: 1.4545 | D prob: 0.4706 | G prob: 0.4824 | mse: 0.4362\n",
      "Epoch 4/20 | Step 7/45\n",
      "G loss: 0.7917 | D loss: 1.4846 | D prob: 0.4459 | G prob: 0.4610 | mse: 0.4278\n",
      "Epoch 4/20 | Step 8/45\n",
      "G loss: 0.7530 | D loss: 1.3970 | D prob: 0.4929 | G prob: 0.4776 | mse: 0.4274\n",
      "Epoch 4/20 | Step 9/45\n",
      "G loss: 0.8212 | D loss: 1.3894 | D prob: 0.4726 | G prob: 0.4478 | mse: 0.4324\n",
      "Epoch 4/20 | Step 10/45\n",
      "G loss: 0.6693 | D loss: 1.4047 | D prob: 0.5302 | G prob: 0.5183 | mse: 0.4041\n",
      "Epoch 4/20 | Step 11/45\n",
      "G loss: 0.8799 | D loss: 1.4468 | D prob: 0.4231 | G prob: 0.4227 | mse: 0.4365\n",
      "Epoch 4/20 | Step 12/45\n",
      "G loss: 0.6748 | D loss: 1.3706 | D prob: 0.5524 | G prob: 0.5190 | mse: 0.4430\n",
      "Epoch 4/20 | Step 13/45\n",
      "G loss: 0.9106 | D loss: 1.4422 | D prob: 0.4237 | G prob: 0.4118 | mse: 0.4277\n",
      "Epoch 4/20 | Step 14/45\n",
      "G loss: 0.5565 | D loss: 1.4168 | D prob: 0.6065 | G prob: 0.5807 | mse: 0.4401\n",
      "Epoch 4/20 | Step 15/45\n",
      "G loss: 1.0871 | D loss: 1.5627 | D prob: 0.3397 | G prob: 0.3486 | mse: 0.4314\n",
      "Epoch 4/20 | Step 16/45\n",
      "G loss: 0.4824 | D loss: 1.4093 | D prob: 0.6786 | G prob: 0.6244 | mse: 0.4392\n",
      "Epoch 4/20 | Step 17/45\n",
      "G loss: 1.4910 | D loss: 1.8839 | D prob: 0.2222 | G prob: 0.2361 | mse: 0.4376\n",
      "Epoch 4/20 | Step 18/45\n",
      "G loss: 0.2985 | D loss: 1.6873 | D prob: 0.7611 | G prob: 0.7454 | mse: 0.4320\n",
      "Epoch 4/20 | Step 19/45\n",
      "G loss: 1.2835 | D loss: 1.8257 | D prob: 0.2498 | G prob: 0.2879 | mse: 0.4338\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 4/20 | Step 20/45\n",
      "G loss: 0.5299 | D loss: 1.3961 | D prob: 0.6359 | G prob: 0.5946 | mse: 0.4389\n",
      "Epoch 4/20 | Step 21/45\n",
      "G loss: 0.8489 | D loss: 1.4094 | D prob: 0.4511 | G prob: 0.4351 | mse: 0.4238\n",
      "Epoch 4/20 | Step 22/45\n",
      "G loss: 0.8570 | D loss: 1.4374 | D prob: 0.4434 | G prob: 0.4348 | mse: 0.4456\n",
      "Epoch 4/20 | Step 23/45\n",
      "G loss: 0.6236 | D loss: 1.4542 | D prob: 0.5308 | G prob: 0.5425 | mse: 0.4464\n",
      "Epoch 4/20 | Step 24/45\n",
      "G loss: 0.9987 | D loss: 1.5042 | D prob: 0.3755 | G prob: 0.3785 | mse: 0.4144\n",
      "Epoch 4/20 | Step 25/45\n",
      "G loss: 0.5348 | D loss: 1.4249 | D prob: 0.6160 | G prob: 0.5924 | mse: 0.4484\n",
      "Epoch 4/20 | Step 26/45\n",
      "G loss: 1.0571 | D loss: 1.5384 | D prob: 0.3481 | G prob: 0.3539 | mse: 0.4426\n",
      "Epoch 4/20 | Step 27/45\n",
      "G loss: 0.5084 | D loss: 1.3895 | D prob: 0.6566 | G prob: 0.6075 | mse: 0.4272\n",
      "Epoch 4/20 | Step 28/45\n",
      "G loss: 1.0859 | D loss: 1.5348 | D prob: 0.3429 | G prob: 0.3453 | mse: 0.4280\n",
      "Epoch 4/20 | Step 29/45\n",
      "G loss: 0.5258 | D loss: 1.3995 | D prob: 0.6368 | G prob: 0.5980 | mse: 0.4286\n",
      "Epoch 4/20 | Step 30/45\n",
      "G loss: 1.0293 | D loss: 1.4233 | D prob: 0.3970 | G prob: 0.3652 | mse: 0.4432\n",
      "Epoch 4/20 | Step 31/45\n",
      "G loss: 0.6254 | D loss: 1.3660 | D prob: 0.5727 | G prob: 0.5405 | mse: 0.4382\n",
      "Epoch 4/20 | Step 32/45\n",
      "G loss: 1.0141 | D loss: 1.4892 | D prob: 0.3768 | G prob: 0.3708 | mse: 0.4255\n",
      "Epoch 4/20 | Step 33/45\n",
      "G loss: 0.5195 | D loss: 1.4132 | D prob: 0.6370 | G prob: 0.6009 | mse: 0.4408\n",
      "Epoch 4/20 | Step 34/45\n",
      "G loss: 1.1442 | D loss: 1.5596 | D prob: 0.3331 | G prob: 0.3292 | mse: 0.4323\n",
      "Epoch 4/20 | Step 35/45\n",
      "G loss: 0.4487 | D loss: 1.4235 | D prob: 0.7027 | G prob: 0.6435 | mse: 0.4393\n",
      "Epoch 4/20 | Step 36/45\n",
      "G loss: 1.2771 | D loss: 1.6267 | D prob: 0.2940 | G prob: 0.2882 | mse: 0.4344\n",
      "Epoch 4/20 | Step 37/45\n",
      "G loss: 0.4217 | D loss: 1.4539 | D prob: 0.7123 | G prob: 0.6605 | mse: 0.4425\n",
      "Epoch 4/20 | Step 38/45\n",
      "G loss: 1.3202 | D loss: 1.6424 | D prob: 0.2862 | G prob: 0.2782 | mse: 0.4364\n",
      "Epoch 4/20 | Step 39/45\n",
      "G loss: 0.4279 | D loss: 1.4627 | D prob: 0.6974 | G prob: 0.6563 | mse: 0.4325\n",
      "Epoch 4/20 | Step 40/45\n",
      "G loss: 1.1687 | D loss: 1.5291 | D prob: 0.3380 | G prob: 0.3204 | mse: 0.4360\n",
      "Epoch 4/20 | Step 41/45\n",
      "G loss: 0.4829 | D loss: 1.4158 | D prob: 0.6664 | G prob: 0.6222 | mse: 0.4535\n",
      "Epoch 4/20 | Step 42/45\n",
      "G loss: 0.9636 | D loss: 1.4119 | D prob: 0.4164 | G prob: 0.3890 | mse: 0.4490\n",
      "Epoch 4/20 | Step 43/45\n",
      "G loss: 0.7727 | D loss: 1.3585 | D prob: 0.5070 | G prob: 0.4708 | mse: 0.4561\n",
      "Epoch 4/20 | Step 44/45\n",
      "G loss: 0.6652 | D loss: 1.3370 | D prob: 0.5756 | G prob: 0.5226 | mse: 0.4282\n",
      "Epoch 4/20 | Step 45/45\n",
      "G loss: 0.9372 | D loss: 1.4288 | D prob: 0.4200 | G prob: 0.4023 | mse: 0.4165\n",
      "Epoch 5/20 | Step 0/45\n",
      "G loss: 0.6669 | D loss: 1.3483 | D prob: 0.5680 | G prob: 0.5241 | mse: 0.4455\n",
      "Epoch 5/20 | Step 1/45\n",
      "G loss: 0.8658 | D loss: 1.3367 | D prob: 0.4814 | G prob: 0.4308 | mse: 0.4449\n",
      "Epoch 5/20 | Step 2/45\n",
      "G loss: 0.7279 | D loss: 1.3633 | D prob: 0.5244 | G prob: 0.4930 | mse: 0.4384\n",
      "Epoch 5/20 | Step 3/45\n",
      "G loss: 0.8390 | D loss: 1.3343 | D prob: 0.4894 | G prob: 0.4395 | mse: 0.4290\n",
      "Epoch 5/20 | Step 4/45\n",
      "G loss: 0.8194 | D loss: 1.3410 | D prob: 0.4928 | G prob: 0.4484 | mse: 0.4432\n",
      "Epoch 5/20 | Step 5/45\n",
      "G loss: 0.7159 | D loss: 1.2807 | D prob: 0.5705 | G prob: 0.4962 | mse: 0.4256\n",
      "Epoch 5/20 | Step 6/45\n",
      "G loss: 1.0329 | D loss: 1.4855 | D prob: 0.3755 | G prob: 0.3648 | mse: 0.4261\n",
      "Epoch 5/20 | Step 7/45\n",
      "G loss: 0.5891 | D loss: 1.3326 | D prob: 0.6158 | G prob: 0.5597 | mse: 0.4274\n",
      "Epoch 5/20 | Step 8/45\n",
      "G loss: 1.1973 | D loss: 1.4871 | D prob: 0.3472 | G prob: 0.3100 | mse: 0.4574\n",
      "Epoch 5/20 | Step 9/45\n",
      "G loss: 0.4674 | D loss: 1.3650 | D prob: 0.7093 | G prob: 0.6305 | mse: 0.4359\n",
      "Epoch 5/20 | Step 10/45\n",
      "G loss: 1.3444 | D loss: 1.4922 | D prob: 0.3270 | G prob: 0.2678 | mse: 0.4356\n",
      "Epoch 5/20 | Step 11/45\n",
      "G loss: 0.4517 | D loss: 1.3935 | D prob: 0.7174 | G prob: 0.6425 | mse: 0.4461\n",
      "Epoch 5/20 | Step 12/45\n",
      "G loss: 1.2005 | D loss: 1.4727 | D prob: 0.3573 | G prob: 0.3108 | mse: 0.4483\n",
      "Epoch 5/20 | Step 13/45\n",
      "G loss: 0.5355 | D loss: 1.3908 | D prob: 0.6352 | G prob: 0.5918 | mse: 0.4372\n",
      "Epoch 5/20 | Step 14/45\n",
      "G loss: 1.1199 | D loss: 1.4392 | D prob: 0.3851 | G prob: 0.3383 | mse: 0.4475\n",
      "Epoch 5/20 | Step 15/45\n",
      "G loss: 0.5988 | D loss: 1.3089 | D prob: 0.6346 | G prob: 0.5573 | mse: 0.4308\n",
      "Epoch 5/20 | Step 16/45\n",
      "G loss: 1.0388 | D loss: 1.3145 | D prob: 0.4506 | G prob: 0.3652 | mse: 0.4390\n",
      "Epoch 5/20 | Step 17/45\n",
      "G loss: 0.7018 | D loss: 1.2915 | D prob: 0.5822 | G prob: 0.5061 | mse: 0.4527\n",
      "Epoch 5/20 | Step 18/45\n",
      "G loss: 1.1119 | D loss: 1.3327 | D prob: 0.4305 | G prob: 0.3409 | mse: 0.4550\n",
      "Epoch 5/20 | Step 19/45\n",
      "G loss: 0.5453 | D loss: 1.3515 | D prob: 0.6515 | G prob: 0.5866 | mse: 0.4640\n",
      "Epoch 5/20 | Step 20/45\n",
      "G loss: 1.1760 | D loss: 1.5543 | D prob: 0.3346 | G prob: 0.3207 | mse: 0.4567\n",
      "Epoch 5/20 | Step 21/45\n",
      "G loss: 0.4756 | D loss: 1.4327 | D prob: 0.6649 | G prob: 0.6270 | mse: 0.4354\n",
      "Epoch 5/20 | Step 22/45\n",
      "G loss: 1.2505 | D loss: 1.5700 | D prob: 0.3161 | G prob: 0.2948 | mse: 0.4566\n",
      "Epoch 5/20 | Step 23/45\n",
      "G loss: 0.4741 | D loss: 1.3821 | D prob: 0.6981 | G prob: 0.6284 | mse: 0.4281\n",
      "Epoch 5/20 | Step 24/45\n",
      "G loss: 1.1473 | D loss: 1.5131 | D prob: 0.3460 | G prob: 0.3274 | mse: 0.4628\n",
      "Epoch 5/20 | Step 25/45\n",
      "G loss: 0.6090 | D loss: 1.2889 | D prob: 0.6347 | G prob: 0.5513 | mse: 0.4389\n",
      "Epoch 5/20 | Step 26/45\n",
      "G loss: 0.9141 | D loss: 1.3460 | D prob: 0.4639 | G prob: 0.4107 | mse: 0.4752\n",
      "Epoch 5/20 | Step 27/45\n",
      "G loss: 0.7596 | D loss: 1.3447 | D prob: 0.5194 | G prob: 0.4770 | mse: 0.4529\n",
      "Epoch 5/20 | Step 28/45\n",
      "G loss: 0.7661 | D loss: 1.2647 | D prob: 0.5549 | G prob: 0.4736 | mse: 0.4402\n",
      "Epoch 5/20 | Step 29/45\n",
      "G loss: 0.9519 | D loss: 1.3442 | D prob: 0.4465 | G prob: 0.3946 | mse: 0.4645\n",
      "Epoch 5/20 | Step 30/45\n",
      "G loss: 0.7603 | D loss: 1.2884 | D prob: 0.5526 | G prob: 0.4774 | mse: 0.4449\n",
      "Epoch 5/20 | Step 31/45\n",
      "G loss: 0.8452 | D loss: 1.3173 | D prob: 0.4980 | G prob: 0.4363 | mse: 0.4525\n",
      "Epoch 5/20 | Step 32/45\n",
      "G loss: 0.7676 | D loss: 1.2910 | D prob: 0.5391 | G prob: 0.4724 | mse: 0.4417\n",
      "Epoch 5/20 | Step 33/45\n",
      "G loss: 0.8295 | D loss: 1.3819 | D prob: 0.4703 | G prob: 0.4444 | mse: 0.4454\n",
      "Epoch 5/20 | Step 34/45\n",
      "G loss: 0.7375 | D loss: 1.2606 | D prob: 0.5686 | G prob: 0.4859 | mse: 0.4732\n",
      "Epoch 5/20 | Step 35/45\n",
      "G loss: 0.8993 | D loss: 1.3647 | D prob: 0.4556 | G prob: 0.4163 | mse: 0.4531\n",
      "Epoch 5/20 | Step 36/45\n",
      "G loss: 0.6924 | D loss: 1.2469 | D prob: 0.6059 | G prob: 0.5080 | mse: 0.4668\n",
      "Epoch 5/20 | Step 37/45\n",
      "G loss: 0.9567 | D loss: 1.3484 | D prob: 0.4502 | G prob: 0.3928 | mse: 0.4654\n",
      "Epoch 5/20 | Step 38/45\n",
      "G loss: 0.6157 | D loss: 1.3238 | D prob: 0.6111 | G prob: 0.5482 | mse: 0.4638\n",
      "Epoch 5/20 | Step 39/45\n",
      "G loss: 0.8862 | D loss: 1.3747 | D prob: 0.4567 | G prob: 0.4220 | mse: 0.4747\n",
      "Epoch 5/20 | Step 40/45\n",
      "G loss: 0.6446 | D loss: 1.2994 | D prob: 0.5995 | G prob: 0.5318 | mse: 0.4584\n",
      "Epoch 5/20 | Step 41/45\n",
      "G loss: 1.0007 | D loss: 1.4189 | D prob: 0.4052 | G prob: 0.3765 | mse: 0.4509\n",
      "Epoch 5/20 | Step 42/45\n",
      "G loss: 0.5058 | D loss: 1.3683 | D prob: 0.6649 | G prob: 0.6076 | mse: 0.4470\n",
      "Epoch 5/20 | Step 43/45\n",
      "G loss: 1.3410 | D loss: 1.5055 | D prob: 0.3194 | G prob: 0.2680 | mse: 0.4389\n",
      "Epoch 5/20 | Step 44/45\n",
      "G loss: 0.3794 | D loss: 1.4699 | D prob: 0.7656 | G prob: 0.6887 | mse: 0.4715\n",
      "Epoch 5/20 | Step 45/45\n",
      "G loss: 1.3095 | D loss: 1.5609 | D prob: 0.3099 | G prob: 0.2805 | mse: 0.4960\n",
      "Epoch 6/20 | Step 0/45\n",
      "G loss: 0.5118 | D loss: 1.3752 | D prob: 0.6680 | G prob: 0.6069 | mse: 0.4595\n",
      "Epoch 6/20 | Step 1/45\n",
      "G loss: 1.0182 | D loss: 1.3262 | D prob: 0.4463 | G prob: 0.3729 | mse: 0.4579\n",
      "Epoch 6/20 | Step 2/45\n",
      "G loss: 0.7114 | D loss: 1.2855 | D prob: 0.5754 | G prob: 0.5006 | mse: 0.4579\n",
      "Epoch 6/20 | Step 3/45\n",
      "G loss: 0.7351 | D loss: 1.3382 | D prob: 0.5316 | G prob: 0.4868 | mse: 0.4383\n",
      "Epoch 6/20 | Step 4/45\n",
      "G loss: 0.9754 | D loss: 1.2679 | D prob: 0.4792 | G prob: 0.3864 | mse: 0.4567\n",
      "Epoch 6/20 | Step 5/45\n",
      "G loss: 0.6717 | D loss: 1.2584 | D prob: 0.6138 | G prob: 0.5194 | mse: 0.4496\n",
      "Epoch 6/20 | Step 6/45\n",
      "G loss: 1.0455 | D loss: 1.3415 | D prob: 0.4334 | G prob: 0.3636 | mse: 0.4582\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 6/20 | Step 7/45\n",
      "G loss: 0.5206 | D loss: 1.3796 | D prob: 0.6625 | G prob: 0.6018 | mse: 0.4503\n",
      "Epoch 6/20 | Step 8/45\n",
      "G loss: 1.0237 | D loss: 1.3759 | D prob: 0.4246 | G prob: 0.3718 | mse: 0.4475\n",
      "Epoch 6/20 | Step 9/45\n",
      "G loss: 0.6629 | D loss: 1.2885 | D prob: 0.6025 | G prob: 0.5243 | mse: 0.4788\n",
      "Epoch 6/20 | Step 10/45\n",
      "G loss: 0.9486 | D loss: 1.2944 | D prob: 0.4729 | G prob: 0.3981 | mse: 0.4478\n",
      "Epoch 6/20 | Step 11/45\n",
      "G loss: 0.6663 | D loss: 1.2699 | D prob: 0.6084 | G prob: 0.5215 | mse: 0.4427\n",
      "Epoch 6/20 | Step 12/45\n",
      "G loss: 1.1084 | D loss: 1.3903 | D prob: 0.3967 | G prob: 0.3398 | mse: 0.4485\n",
      "Epoch 6/20 | Step 13/45\n",
      "G loss: 0.5055 | D loss: 1.3486 | D prob: 0.6877 | G prob: 0.6092 | mse: 0.4398\n",
      "Epoch 6/20 | Step 14/45\n",
      "G loss: 1.4226 | D loss: 1.4803 | D prob: 0.3271 | G prob: 0.2517 | mse: 0.4631\n",
      "Epoch 6/20 | Step 15/45\n",
      "G loss: 0.4393 | D loss: 1.3940 | D prob: 0.7499 | G prob: 0.6523 | mse: 0.4553\n",
      "Epoch 6/20 | Step 16/45\n",
      "G loss: 1.2557 | D loss: 1.4035 | D prob: 0.3768 | G prob: 0.2990 | mse: 0.4483\n",
      "Epoch 6/20 | Step 17/45\n",
      "G loss: 0.4126 | D loss: 1.4533 | D prob: 0.7386 | G prob: 0.6684 | mse: 0.4647\n",
      "Epoch 6/20 | Step 18/45\n",
      "G loss: 1.0799 | D loss: 1.3902 | D prob: 0.4064 | G prob: 0.3538 | mse: 0.4586\n",
      "Epoch 6/20 | Step 19/45\n",
      "G loss: 0.5946 | D loss: 1.2896 | D prob: 0.6504 | G prob: 0.5603 | mse: 0.4417\n",
      "Epoch 6/20 | Step 20/45\n",
      "G loss: 0.9392 | D loss: 1.3437 | D prob: 0.4556 | G prob: 0.4010 | mse: 0.4524\n",
      "Epoch 6/20 | Step 21/45\n",
      "G loss: 0.5750 | D loss: 1.3097 | D prob: 0.6504 | G prob: 0.5703 | mse: 0.4531\n",
      "Epoch 6/20 | Step 22/45\n",
      "G loss: 1.1621 | D loss: 1.3242 | D prob: 0.4119 | G prob: 0.3233 | mse: 0.4694\n",
      "Epoch 6/20 | Step 23/45\n",
      "G loss: 0.4954 | D loss: 1.3625 | D prob: 0.6822 | G prob: 0.6143 | mse: 0.4534\n",
      "Epoch 6/20 | Step 24/45\n",
      "G loss: 1.2466 | D loss: 1.3884 | D prob: 0.3711 | G prob: 0.2973 | mse: 0.4683\n",
      "Epoch 6/20 | Step 25/45\n",
      "G loss: 0.4377 | D loss: 1.4039 | D prob: 0.7166 | G prob: 0.6489 | mse: 0.4431\n",
      "Epoch 6/20 | Step 26/45\n",
      "G loss: 1.1743 | D loss: 1.4126 | D prob: 0.3783 | G prob: 0.3197 | mse: 0.4683\n",
      "Epoch 6/20 | Step 27/45\n",
      "G loss: 0.5725 | D loss: 1.2939 | D prob: 0.6668 | G prob: 0.5728 | mse: 0.4757\n",
      "Epoch 6/20 | Step 28/45\n",
      "G loss: 1.0076 | D loss: 1.2884 | D prob: 0.4577 | G prob: 0.3732 | mse: 0.4522\n",
      "Epoch 6/20 | Step 29/45\n",
      "G loss: 0.6470 | D loss: 1.2639 | D prob: 0.6249 | G prob: 0.5325 | mse: 0.4622\n",
      "Epoch 6/20 | Step 30/45\n",
      "G loss: 0.9064 | D loss: 1.2340 | D prob: 0.5145 | G prob: 0.4112 | mse: 0.4572\n",
      "Epoch 6/20 | Step 31/45\n",
      "G loss: 0.7046 | D loss: 1.2642 | D prob: 0.5858 | G prob: 0.5021 | mse: 0.4716\n",
      "Epoch 6/20 | Step 32/45\n",
      "G loss: 1.0082 | D loss: 1.2507 | D prob: 0.4737 | G prob: 0.3730 | mse: 0.4630\n",
      "Epoch 6/20 | Step 33/45\n",
      "G loss: 0.7048 | D loss: 1.2588 | D prob: 0.5859 | G prob: 0.5007 | mse: 0.4535\n",
      "Epoch 6/20 | Step 34/45\n",
      "G loss: 0.8915 | D loss: 1.2969 | D prob: 0.4865 | G prob: 0.4177 | mse: 0.4550\n",
      "Epoch 6/20 | Step 35/45\n",
      "G loss: 0.6832 | D loss: 1.2577 | D prob: 0.6094 | G prob: 0.5156 | mse: 0.4595\n",
      "Epoch 6/20 | Step 36/45\n",
      "G loss: 1.0056 | D loss: 1.2825 | D prob: 0.4645 | G prob: 0.3756 | mse: 0.4666\n",
      "Epoch 6/20 | Step 37/45\n",
      "G loss: 0.5671 | D loss: 1.2888 | D prob: 0.6671 | G prob: 0.5729 | mse: 0.4483\n",
      "Epoch 6/20 | Step 38/45\n",
      "G loss: 1.1827 | D loss: 1.3469 | D prob: 0.4039 | G prob: 0.3185 | mse: 0.4512\n",
      "Epoch 6/20 | Step 39/45\n",
      "G loss: 0.4904 | D loss: 1.3304 | D prob: 0.7169 | G prob: 0.6188 | mse: 0.4507\n",
      "Epoch 6/20 | Step 40/45\n",
      "G loss: 1.2592 | D loss: 1.3990 | D prob: 0.3717 | G prob: 0.2964 | mse: 0.4358\n",
      "Epoch 6/20 | Step 41/45\n",
      "G loss: 0.5431 | D loss: 1.3352 | D prob: 0.6677 | G prob: 0.5894 | mse: 0.4573\n",
      "Epoch 6/20 | Step 42/45\n",
      "G loss: 1.0514 | D loss: 1.3187 | D prob: 0.4444 | G prob: 0.3636 | mse: 0.4579\n",
      "Epoch 6/20 | Step 43/45\n",
      "G loss: 0.7200 | D loss: 1.2546 | D prob: 0.5894 | G prob: 0.4967 | mse: 0.4599\n",
      "Epoch 6/20 | Step 44/45\n",
      "G loss: 0.9311 | D loss: 1.2886 | D prob: 0.4832 | G prob: 0.4032 | mse: 0.4543\n",
      "Epoch 6/20 | Step 45/45\n",
      "G loss: 0.7398 | D loss: 1.2838 | D prob: 0.5557 | G prob: 0.4839 | mse: 0.4508\n",
      "Epoch 7/20 | Step 0/45\n",
      "G loss: 0.8136 | D loss: 1.1886 | D prob: 0.5837 | G prob: 0.4542 | mse: 0.4668\n",
      "Epoch 7/20 | Step 1/45\n",
      "G loss: 0.9499 | D loss: 1.2697 | D prob: 0.4896 | G prob: 0.3984 | mse: 0.4670\n",
      "Epoch 7/20 | Step 2/45\n",
      "G loss: 0.4862 | D loss: 1.3737 | D prob: 0.6979 | G prob: 0.6223 | mse: 0.4370\n",
      "Epoch 7/20 | Step 3/45\n",
      "G loss: 1.3451 | D loss: 1.3805 | D prob: 0.3720 | G prob: 0.2724 | mse: 0.4533\n",
      "Epoch 7/20 | Step 4/45\n",
      "G loss: 0.5035 | D loss: 1.3106 | D prob: 0.7192 | G prob: 0.6112 | mse: 0.4452\n",
      "Epoch 7/20 | Step 5/45\n",
      "G loss: 1.0245 | D loss: 1.2851 | D prob: 0.4624 | G prob: 0.3726 | mse: 0.4689\n",
      "Epoch 7/20 | Step 6/45\n",
      "G loss: 0.7237 | D loss: 1.2092 | D prob: 0.6121 | G prob: 0.4950 | mse: 0.4528\n",
      "Epoch 7/20 | Step 7/45\n",
      "G loss: 0.9174 | D loss: 1.2161 | D prob: 0.5222 | G prob: 0.4103 | mse: 0.4665\n",
      "Epoch 7/20 | Step 8/45\n",
      "G loss: 0.7655 | D loss: 1.2474 | D prob: 0.5624 | G prob: 0.4724 | mse: 0.4603\n",
      "Epoch 7/20 | Step 9/45\n",
      "G loss: 0.8216 | D loss: 1.2506 | D prob: 0.5367 | G prob: 0.4480 | mse: 0.4522\n",
      "Epoch 7/20 | Step 10/45\n",
      "G loss: 0.9842 | D loss: 1.2533 | D prob: 0.4800 | G prob: 0.3821 | mse: 0.4371\n",
      "Epoch 7/20 | Step 11/45\n",
      "G loss: 0.6759 | D loss: 1.2365 | D prob: 0.6195 | G prob: 0.5169 | mse: 0.4612\n",
      "Epoch 7/20 | Step 12/45\n",
      "G loss: 1.0838 | D loss: 1.3011 | D prob: 0.4389 | G prob: 0.3485 | mse: 0.4445\n",
      "Epoch 7/20 | Step 13/45\n",
      "G loss: 0.5137 | D loss: 1.3056 | D prob: 0.7058 | G prob: 0.6039 | mse: 0.4633\n",
      "Epoch 7/20 | Step 14/45\n",
      "G loss: 1.2491 | D loss: 1.3689 | D prob: 0.3866 | G prob: 0.2973 | mse: 0.4651\n",
      "Epoch 7/20 | Step 15/45\n",
      "G loss: 0.3508 | D loss: 1.5148 | D prob: 0.7844 | G prob: 0.7084 | mse: 0.4438\n",
      "Epoch 7/20 | Step 16/45\n",
      "G loss: 1.2409 | D loss: 1.4635 | D prob: 0.3555 | G prob: 0.3040 | mse: 0.4535\n",
      "Epoch 7/20 | Step 17/45\n",
      "G loss: 0.5046 | D loss: 1.3777 | D prob: 0.6856 | G prob: 0.6138 | mse: 0.4779\n",
      "Epoch 7/20 | Step 18/45\n",
      "G loss: 0.9371 | D loss: 1.2733 | D prob: 0.4837 | G prob: 0.4010 | mse: 0.4729\n",
      "Epoch 7/20 | Step 19/45\n",
      "G loss: 0.6643 | D loss: 1.2704 | D prob: 0.6154 | G prob: 0.5243 | mse: 0.4692\n",
      "Epoch 7/20 | Step 20/45\n",
      "G loss: 0.9078 | D loss: 1.2583 | D prob: 0.5036 | G prob: 0.4119 | mse: 0.4629\n",
      "Epoch 7/20 | Step 21/45\n",
      "G loss: 0.7732 | D loss: 1.2248 | D prob: 0.5761 | G prob: 0.4717 | mse: 0.4561\n",
      "Epoch 7/20 | Step 22/45\n",
      "G loss: 0.9997 | D loss: 1.2049 | D prob: 0.5006 | G prob: 0.3790 | mse: 0.4567\n",
      "Epoch 7/20 | Step 23/45\n",
      "G loss: 0.7645 | D loss: 1.2534 | D prob: 0.5672 | G prob: 0.4758 | mse: 0.4499\n",
      "Epoch 7/20 | Step 24/45\n",
      "G loss: 0.9053 | D loss: 1.2527 | D prob: 0.5080 | G prob: 0.4151 | mse: 0.4543\n",
      "Epoch 7/20 | Step 25/45\n",
      "G loss: 0.7063 | D loss: 1.2438 | D prob: 0.5971 | G prob: 0.5003 | mse: 0.4318\n",
      "Epoch 7/20 | Step 26/45\n",
      "G loss: 1.0316 | D loss: 1.2506 | D prob: 0.4670 | G prob: 0.3656 | mse: 0.4438\n",
      "Epoch 7/20 | Step 27/45\n",
      "G loss: 0.6785 | D loss: 1.2168 | D prob: 0.6267 | G prob: 0.5141 | mse: 0.4679\n",
      "Epoch 7/20 | Step 28/45\n",
      "G loss: 1.1129 | D loss: 1.2921 | D prob: 0.4329 | G prob: 0.3371 | mse: 0.4375\n",
      "Epoch 7/20 | Step 29/45\n",
      "G loss: 0.5654 | D loss: 1.2615 | D prob: 0.6912 | G prob: 0.5753 | mse: 0.4514\n",
      "Epoch 7/20 | Step 30/45\n",
      "G loss: 1.2830 | D loss: 1.3415 | D prob: 0.3893 | G prob: 0.2877 | mse: 0.4685\n",
      "Epoch 7/20 | Step 31/45\n",
      "G loss: 0.5236 | D loss: 1.2928 | D prob: 0.7132 | G prob: 0.5999 | mse: 0.4661\n",
      "Epoch 7/20 | Step 32/45\n",
      "G loss: 1.3567 | D loss: 1.3646 | D prob: 0.3708 | G prob: 0.2701 | mse: 0.4686\n",
      "Epoch 7/20 | Step 33/45\n",
      "G loss: 0.3990 | D loss: 1.4235 | D prob: 0.7656 | G prob: 0.6750 | mse: 0.4659\n",
      "Epoch 7/20 | Step 34/45\n",
      "G loss: 1.3624 | D loss: 1.4516 | D prob: 0.3388 | G prob: 0.2686 | mse: 0.4550\n",
      "Epoch 7/20 | Step 35/45\n",
      "G loss: 0.4598 | D loss: 1.3835 | D prob: 0.7213 | G prob: 0.6379 | mse: 0.4469\n",
      "Epoch 7/20 | Step 36/45\n",
      "G loss: 1.1835 | D loss: 1.3804 | D prob: 0.3822 | G prob: 0.3171 | mse: 0.4669\n",
      "Epoch 7/20 | Step 37/45\n",
      "G loss: 0.6850 | D loss: 1.2189 | D prob: 0.6321 | G prob: 0.5143 | mse: 0.4523\n",
      "Epoch 7/20 | Step 38/45\n",
      "G loss: 0.9151 | D loss: 1.2355 | D prob: 0.5157 | G prob: 0.4116 | mse: 0.4500\n",
      "Epoch 7/20 | Step 39/45\n",
      "G loss: 0.9103 | D loss: 1.2829 | D prob: 0.4924 | G prob: 0.4132 | mse: 0.4588\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 7/20 | Step 40/45\n",
      "G loss: 0.6914 | D loss: 1.2199 | D prob: 0.6179 | G prob: 0.5081 | mse: 0.4579\n",
      "Epoch 7/20 | Step 41/45\n",
      "G loss: 1.1299 | D loss: 1.3403 | D prob: 0.4136 | G prob: 0.3348 | mse: 0.4386\n",
      "Epoch 7/20 | Step 42/45\n",
      "G loss: 0.5809 | D loss: 1.2596 | D prob: 0.6725 | G prob: 0.5653 | mse: 0.4495\n",
      "Epoch 7/20 | Step 43/45\n",
      "G loss: 1.2790 | D loss: 1.3431 | D prob: 0.3891 | G prob: 0.2881 | mse: 0.4537\n",
      "Epoch 7/20 | Step 44/45\n",
      "G loss: 0.5209 | D loss: 1.3268 | D prob: 0.6910 | G prob: 0.6002 | mse: 0.4659\n",
      "Epoch 7/20 | Step 45/45\n",
      "G loss: 1.2325 | D loss: 1.4197 | D prob: 0.3717 | G prob: 0.3035 | mse: 0.4713\n",
      "Epoch 8/20 | Step 0/45\n",
      "G loss: 0.5603 | D loss: 1.2955 | D prob: 0.6774 | G prob: 0.5793 | mse: 0.4684\n",
      "Epoch 8/20 | Step 1/45\n",
      "G loss: 1.0136 | D loss: 1.2836 | D prob: 0.4652 | G prob: 0.3777 | mse: 0.4572\n",
      "Epoch 8/20 | Step 2/45\n",
      "G loss: 0.6421 | D loss: 1.2574 | D prob: 0.6274 | G prob: 0.5333 | mse: 0.4451\n",
      "Epoch 8/20 | Step 3/45\n",
      "G loss: 0.9700 | D loss: 1.2896 | D prob: 0.4663 | G prob: 0.3880 | mse: 0.4521\n",
      "Epoch 8/20 | Step 4/45\n",
      "G loss: 0.7735 | D loss: 1.1744 | D prob: 0.5970 | G prob: 0.4678 | mse: 0.4735\n",
      "Epoch 8/20 | Step 5/45\n",
      "G loss: 0.9865 | D loss: 1.1856 | D prob: 0.5108 | G prob: 0.3817 | mse: 0.4538\n",
      "Epoch 8/20 | Step 6/45\n",
      "G loss: 0.6227 | D loss: 1.2626 | D prob: 0.6425 | G prob: 0.5449 | mse: 0.4457\n",
      "Epoch 8/20 | Step 7/45\n",
      "G loss: 1.2502 | D loss: 1.3622 | D prob: 0.3847 | G prob: 0.2983 | mse: 0.4570\n",
      "Epoch 8/20 | Step 8/45\n",
      "G loss: 0.4295 | D loss: 1.3606 | D prob: 0.7757 | G prob: 0.6563 | mse: 0.4533\n",
      "Epoch 8/20 | Step 9/45\n",
      "G loss: 1.3379 | D loss: 1.3961 | D prob: 0.3622 | G prob: 0.2754 | mse: 0.4579\n",
      "Epoch 8/20 | Step 10/45\n",
      "G loss: 0.4227 | D loss: 1.4254 | D prob: 0.7570 | G prob: 0.6633 | mse: 0.4611\n",
      "Epoch 8/20 | Step 11/45\n",
      "G loss: 1.2064 | D loss: 1.3815 | D prob: 0.3904 | G prob: 0.3123 | mse: 0.4595\n",
      "Epoch 8/20 | Step 12/45\n",
      "G loss: 0.5501 | D loss: 1.3159 | D prob: 0.6775 | G prob: 0.5861 | mse: 0.4693\n",
      "Epoch 8/20 | Step 13/45\n",
      "G loss: 1.0394 | D loss: 1.2945 | D prob: 0.4581 | G prob: 0.3677 | mse: 0.4603\n",
      "Epoch 8/20 | Step 14/45\n",
      "G loss: 0.5995 | D loss: 1.2699 | D prob: 0.6625 | G prob: 0.5579 | mse: 0.4756\n",
      "Epoch 8/20 | Step 15/45\n",
      "G loss: 1.0394 | D loss: 1.2447 | D prob: 0.4831 | G prob: 0.3674 | mse: 0.4559\n",
      "Epoch 8/20 | Step 16/45\n",
      "G loss: 0.6437 | D loss: 1.2980 | D prob: 0.6057 | G prob: 0.5329 | mse: 0.4446\n",
      "Epoch 8/20 | Step 17/45\n",
      "G loss: 1.0092 | D loss: 1.2592 | D prob: 0.4723 | G prob: 0.3755 | mse: 0.4588\n",
      "Epoch 8/20 | Step 18/45\n",
      "G loss: 0.7681 | D loss: 1.1997 | D prob: 0.5894 | G prob: 0.4730 | mse: 0.4580\n",
      "Epoch 8/20 | Step 19/45\n",
      "G loss: 0.8701 | D loss: 1.1985 | D prob: 0.5531 | G prob: 0.4300 | mse: 0.4317\n",
      "Epoch 8/20 | Step 20/45\n",
      "G loss: 0.8333 | D loss: 1.1930 | D prob: 0.5679 | G prob: 0.4447 | mse: 0.4510\n",
      "Epoch 8/20 | Step 21/45\n",
      "G loss: 0.7751 | D loss: 1.1795 | D prob: 0.5987 | G prob: 0.4685 | mse: 0.4484\n",
      "Epoch 8/20 | Step 22/45\n",
      "G loss: 0.8855 | D loss: 1.2323 | D prob: 0.5293 | G prob: 0.4226 | mse: 0.4577\n",
      "Epoch 8/20 | Step 23/45\n",
      "G loss: 0.6790 | D loss: 1.2308 | D prob: 0.6308 | G prob: 0.5168 | mse: 0.4706\n",
      "Epoch 8/20 | Step 24/45\n",
      "G loss: 1.0788 | D loss: 1.2580 | D prob: 0.4653 | G prob: 0.3527 | mse: 0.4481\n",
      "Epoch 8/20 | Step 25/45\n",
      "G loss: 0.5925 | D loss: 1.2379 | D prob: 0.6937 | G prob: 0.5641 | mse: 0.4736\n",
      "Epoch 8/20 | Step 26/45\n",
      "G loss: 1.1241 | D loss: 1.3409 | D prob: 0.4206 | G prob: 0.3360 | mse: 0.4519\n",
      "Epoch 8/20 | Step 27/45\n",
      "G loss: 0.5927 | D loss: 1.2506 | D prob: 0.6758 | G prob: 0.5611 | mse: 0.4729\n",
      "Epoch 8/20 | Step 28/45\n",
      "G loss: 1.0951 | D loss: 1.2885 | D prob: 0.4453 | G prob: 0.3475 | mse: 0.4748\n",
      "Epoch 8/20 | Step 29/45\n",
      "G loss: 0.6187 | D loss: 1.2447 | D prob: 0.6498 | G prob: 0.5453 | mse: 0.4669\n",
      "Epoch 8/20 | Step 30/45\n",
      "G loss: 0.9362 | D loss: 1.2263 | D prob: 0.5127 | G prob: 0.4037 | mse: 0.4653\n",
      "Epoch 8/20 | Step 31/45\n",
      "G loss: 0.7760 | D loss: 1.2255 | D prob: 0.5729 | G prob: 0.4698 | mse: 0.4580\n",
      "Epoch 8/20 | Step 32/45\n",
      "G loss: 0.9046 | D loss: 1.2371 | D prob: 0.5189 | G prob: 0.4167 | mse: 0.4532\n",
      "Epoch 8/20 | Step 33/45\n",
      "G loss: 0.7696 | D loss: 1.2368 | D prob: 0.5750 | G prob: 0.4744 | mse: 0.4654\n",
      "Epoch 8/20 | Step 34/45\n",
      "G loss: 0.9433 | D loss: 1.2406 | D prob: 0.5112 | G prob: 0.4030 | mse: 0.4580\n",
      "Epoch 8/20 | Step 35/45\n",
      "G loss: 0.7048 | D loss: 1.2059 | D prob: 0.6244 | G prob: 0.5042 | mse: 0.4589\n",
      "Epoch 8/20 | Step 36/45\n",
      "G loss: 1.2558 | D loss: 1.3911 | D prob: 0.3754 | G prob: 0.2964 | mse: 0.4420\n",
      "Epoch 8/20 | Step 37/45\n",
      "G loss: 0.3763 | D loss: 1.4458 | D prob: 0.7852 | G prob: 0.6904 | mse: 0.4466\n",
      "Epoch 8/20 | Step 38/45\n",
      "G loss: 1.4924 | D loss: 1.5841 | D prob: 0.2883 | G prob: 0.2367 | mse: 0.4721\n",
      "Epoch 8/20 | Step 39/45\n",
      "G loss: 0.3557 | D loss: 1.4963 | D prob: 0.7937 | G prob: 0.7055 | mse: 0.4535\n",
      "Epoch 8/20 | Step 40/45\n",
      "G loss: 1.2698 | D loss: 1.4201 | D prob: 0.3594 | G prob: 0.2947 | mse: 0.4544\n",
      "Epoch 8/20 | Step 41/45\n",
      "G loss: 0.4968 | D loss: 1.3548 | D prob: 0.6955 | G prob: 0.6153 | mse: 0.4555\n",
      "Epoch 8/20 | Step 42/45\n",
      "G loss: 0.9842 | D loss: 1.2628 | D prob: 0.4796 | G prob: 0.3839 | mse: 0.4475\n",
      "Epoch 8/20 | Step 43/45\n",
      "G loss: 0.6862 | D loss: 1.2180 | D prob: 0.6282 | G prob: 0.5128 | mse: 0.4456\n",
      "Epoch 8/20 | Step 44/45\n",
      "G loss: 0.8209 | D loss: 1.2314 | D prob: 0.5566 | G prob: 0.4521 | mse: 0.4532\n",
      "Epoch 8/20 | Step 45/45\n",
      "G loss: 0.8747 | D loss: 1.2661 | D prob: 0.5204 | G prob: 0.4304 | mse: 0.4646\n",
      "Epoch 9/20 | Step 0/45\n",
      "G loss: 0.6945 | D loss: 1.2522 | D prob: 0.5993 | G prob: 0.5071 | mse: 0.4571\n",
      "Epoch 9/20 | Step 1/45\n",
      "G loss: 1.0686 | D loss: 1.2447 | D prob: 0.4663 | G prob: 0.3545 | mse: 0.4707\n",
      "Epoch 9/20 | Step 2/45\n",
      "G loss: 0.5032 | D loss: 1.2871 | D prob: 0.7358 | G prob: 0.6118 | mse: 0.4526\n",
      "Epoch 9/20 | Step 3/45\n",
      "G loss: 1.3572 | D loss: 1.4446 | D prob: 0.3429 | G prob: 0.2701 | mse: 0.4846\n",
      "Epoch 9/20 | Step 4/45\n",
      "G loss: 0.4175 | D loss: 1.3918 | D prob: 0.7648 | G prob: 0.6638 | mse: 0.4467\n",
      "Epoch 9/20 | Step 5/45\n",
      "G loss: 1.3604 | D loss: 1.4223 | D prob: 0.3520 | G prob: 0.2673 | mse: 0.4553\n",
      "Epoch 9/20 | Step 6/45\n",
      "G loss: 0.4389 | D loss: 1.3692 | D prob: 0.7589 | G prob: 0.6509 | mse: 0.4560\n",
      "Epoch 9/20 | Step 7/45\n",
      "G loss: 1.2658 | D loss: 1.3252 | D prob: 0.3956 | G prob: 0.2951 | mse: 0.4535\n",
      "Epoch 9/20 | Step 8/45\n",
      "G loss: 0.5111 | D loss: 1.2950 | D prob: 0.7110 | G prob: 0.6042 | mse: 0.4388\n",
      "Epoch 9/20 | Step 9/45\n",
      "G loss: 1.0392 | D loss: 1.2256 | D prob: 0.4787 | G prob: 0.3639 | mse: 0.4514\n",
      "Epoch 9/20 | Step 10/45\n",
      "G loss: 0.7409 | D loss: 1.2095 | D prob: 0.5968 | G prob: 0.4845 | mse: 0.4567\n",
      "Epoch 9/20 | Step 11/45\n",
      "G loss: 0.7612 | D loss: 1.2256 | D prob: 0.5856 | G prob: 0.4773 | mse: 0.4634\n",
      "Epoch 9/20 | Step 12/45\n",
      "G loss: 0.9955 | D loss: 1.2687 | D prob: 0.4714 | G prob: 0.3795 | mse: 0.4610\n",
      "Epoch 9/20 | Step 13/45\n",
      "G loss: 0.6001 | D loss: 1.2580 | D prob: 0.6645 | G prob: 0.5579 | mse: 0.4726\n",
      "Epoch 9/20 | Step 14/45\n",
      "G loss: 1.3039 | D loss: 1.3902 | D prob: 0.3698 | G prob: 0.2828 | mse: 0.4498\n",
      "Epoch 9/20 | Step 15/45\n",
      "G loss: 0.4870 | D loss: 1.3459 | D prob: 0.7138 | G prob: 0.6209 | mse: 0.4500\n",
      "Epoch 9/20 | Step 16/45\n",
      "G loss: 1.3498 | D loss: 1.3583 | D prob: 0.3769 | G prob: 0.2746 | mse: 0.4431\n",
      "Epoch 9/20 | Step 17/45\n",
      "G loss: 0.5466 | D loss: 1.3004 | D prob: 0.6917 | G prob: 0.5881 | mse: 0.4562\n",
      "Epoch 9/20 | Step 18/45\n",
      "G loss: 1.1768 | D loss: 1.3485 | D prob: 0.4104 | G prob: 0.3239 | mse: 0.4482\n",
      "Epoch 9/20 | Step 19/45\n",
      "G loss: 0.6338 | D loss: 1.2189 | D prob: 0.6622 | G prob: 0.5379 | mse: 0.4427\n",
      "Epoch 9/20 | Step 20/45\n",
      "G loss: 1.0750 | D loss: 1.2973 | D prob: 0.4449 | G prob: 0.3525 | mse: 0.4511\n",
      "Epoch 9/20 | Step 21/45\n",
      "G loss: 0.6436 | D loss: 1.2267 | D prob: 0.6454 | G prob: 0.5317 | mse: 0.4564\n",
      "Epoch 9/20 | Step 22/45\n",
      "G loss: 1.0187 | D loss: 1.1968 | D prob: 0.5055 | G prob: 0.3729 | mse: 0.4442\n",
      "Epoch 9/20 | Step 23/45\n",
      "G loss: 0.6899 | D loss: 1.2292 | D prob: 0.6190 | G prob: 0.5107 | mse: 0.4634\n",
      "Epoch 9/20 | Step 24/45\n",
      "G loss: 1.1463 | D loss: 1.3146 | D prob: 0.4237 | G prob: 0.3309 | mse: 0.4669\n",
      "Epoch 9/20 | Step 25/45\n",
      "G loss: 0.5283 | D loss: 1.2951 | D prob: 0.7000 | G prob: 0.5950 | mse: 0.4435\n",
      "Epoch 9/20 | Step 26/45\n",
      "G loss: 1.4579 | D loss: 1.4364 | D prob: 0.3375 | G prob: 0.2434 | mse: 0.4629\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 9/20 | Step 27/45\n",
      "G loss: 0.3143 | D loss: 1.5560 | D prob: 0.8164 | G prob: 0.7333 | mse: 0.4462\n",
      "Epoch 9/20 | Step 28/45\n",
      "G loss: 1.6392 | D loss: 1.5598 | D prob: 0.2808 | G prob: 0.2062 | mse: 0.4688\n",
      "Epoch 9/20 | Step 29/45\n",
      "G loss: 0.3905 | D loss: 1.4555 | D prob: 0.8020 | G prob: 0.6864 | mse: 0.4491\n",
      "Epoch 9/20 | Step 30/45\n",
      "G loss: 1.1769 | D loss: 1.3668 | D prob: 0.4015 | G prob: 0.3263 | mse: 0.4599\n",
      "Epoch 9/20 | Step 31/45\n",
      "G loss: 0.6462 | D loss: 1.2248 | D prob: 0.6571 | G prob: 0.5342 | mse: 0.4694\n",
      "Epoch 9/20 | Step 32/45\n",
      "G loss: 0.8974 | D loss: 1.2106 | D prob: 0.5324 | G prob: 0.4186 | mse: 0.4462\n",
      "Epoch 9/20 | Step 33/45\n",
      "G loss: 0.8128 | D loss: 1.2144 | D prob: 0.5671 | G prob: 0.4539 | mse: 0.4677\n",
      "Epoch 9/20 | Step 34/45\n",
      "G loss: 0.7978 | D loss: 1.2606 | D prob: 0.5559 | G prob: 0.4643 | mse: 0.4671\n",
      "Epoch 9/20 | Step 35/45\n",
      "G loss: 0.7690 | D loss: 1.2330 | D prob: 0.5713 | G prob: 0.4730 | mse: 0.4531\n",
      "Epoch 9/20 | Step 36/45\n",
      "G loss: 0.8719 | D loss: 1.2694 | D prob: 0.5118 | G prob: 0.4262 | mse: 0.4547\n",
      "Epoch 9/20 | Step 37/45\n",
      "G loss: 0.8529 | D loss: 1.2306 | D prob: 0.5307 | G prob: 0.4344 | mse: 0.4564\n",
      "Epoch 9/20 | Step 38/45\n",
      "G loss: 0.8905 | D loss: 1.2254 | D prob: 0.5248 | G prob: 0.4189 | mse: 0.4429\n",
      "Epoch 9/20 | Step 39/45\n",
      "G loss: 0.8411 | D loss: 1.2232 | D prob: 0.5451 | G prob: 0.4391 | mse: 0.4474\n",
      "Epoch 9/20 | Step 40/45\n",
      "G loss: 0.8932 | D loss: 1.2482 | D prob: 0.5164 | G prob: 0.4218 | mse: 0.4445\n",
      "Epoch 9/20 | Step 41/45\n",
      "G loss: 0.8148 | D loss: 1.1997 | D prob: 0.5753 | G prob: 0.4558 | mse: 0.4338\n",
      "Epoch 9/20 | Step 42/45\n",
      "G loss: 0.9254 | D loss: 1.3205 | D prob: 0.4696 | G prob: 0.4067 | mse: 0.4500\n",
      "Epoch 9/20 | Step 43/45\n",
      "G loss: 0.7530 | D loss: 1.2068 | D prob: 0.5962 | G prob: 0.4803 | mse: 0.4641\n",
      "Epoch 9/20 | Step 44/45\n",
      "G loss: 1.0390 | D loss: 1.2669 | D prob: 0.4672 | G prob: 0.3657 | mse: 0.4514\n",
      "Epoch 9/20 | Step 45/45\n",
      "G loss: 0.8195 | D loss: 1.1721 | D prob: 0.5848 | G prob: 0.4510 | mse: 0.4536\n",
      "Epoch 10/20 | Step 0/45\n",
      "G loss: 0.9590 | D loss: 1.1766 | D prob: 0.5329 | G prob: 0.3964 | mse: 0.4560\n",
      "Epoch 10/20 | Step 1/45\n",
      "G loss: 0.8870 | D loss: 1.2561 | D prob: 0.5169 | G prob: 0.4249 | mse: 0.4518\n",
      "Epoch 10/20 | Step 2/45\n",
      "G loss: 0.7546 | D loss: 1.2286 | D prob: 0.5828 | G prob: 0.4793 | mse: 0.4572\n",
      "Epoch 10/20 | Step 3/45\n",
      "G loss: 0.9750 | D loss: 1.1816 | D prob: 0.5270 | G prob: 0.3891 | mse: 0.4633\n",
      "Epoch 10/20 | Step 4/45\n",
      "G loss: 0.5545 | D loss: 1.2664 | D prob: 0.7008 | G prob: 0.5815 | mse: 0.4581\n",
      "Epoch 10/20 | Step 5/45\n",
      "G loss: 1.1191 | D loss: 1.3842 | D prob: 0.4029 | G prob: 0.3375 | mse: 0.4715\n",
      "Epoch 10/20 | Step 6/45\n",
      "G loss: 0.3784 | D loss: 1.4598 | D prob: 0.7827 | G prob: 0.6901 | mse: 0.4703\n",
      "Epoch 10/20 | Step 7/45\n",
      "G loss: 1.5892 | D loss: 1.5764 | D prob: 0.2914 | G prob: 0.2157 | mse: 0.4604\n",
      "Epoch 10/20 | Step 8/45\n",
      "G loss: 0.1635 | D loss: 2.0629 | D prob: 0.9013 | G prob: 0.8507 | mse: 0.4479\n",
      "Epoch 10/20 | Step 9/45\n",
      "G loss: 1.6686 | D loss: 1.6575 | D prob: 0.2658 | G prob: 0.2039 | mse: 0.4625\n",
      "Epoch 10/20 | Step 10/45\n",
      "G loss: 0.3669 | D loss: 1.4725 | D prob: 0.7916 | G prob: 0.6975 | mse: 0.4816\n",
      "Epoch 10/20 | Step 11/45\n",
      "G loss: 0.8161 | D loss: 1.2333 | D prob: 0.5555 | G prob: 0.4525 | mse: 0.4512\n",
      "Epoch 10/20 | Step 12/45\n",
      "G loss: 0.7097 | D loss: 1.2249 | D prob: 0.6118 | G prob: 0.5015 | mse: 0.4450\n",
      "Epoch 10/20 | Step 13/45\n",
      "G loss: 0.6787 | D loss: 1.2377 | D prob: 0.6342 | G prob: 0.5185 | mse: 0.4557\n",
      "Epoch 10/20 | Step 14/45\n",
      "G loss: 0.8195 | D loss: 1.2837 | D prob: 0.5295 | G prob: 0.4519 | mse: 0.4453\n",
      "Epoch 10/20 | Step 15/45\n",
      "G loss: 0.6629 | D loss: 1.2294 | D prob: 0.6404 | G prob: 0.5247 | mse: 0.4584\n",
      "Epoch 10/20 | Step 16/45\n",
      "G loss: 0.9847 | D loss: 1.3018 | D prob: 0.4647 | G prob: 0.3875 | mse: 0.4652\n",
      "Epoch 10/20 | Step 17/45\n",
      "G loss: 0.6888 | D loss: 1.2170 | D prob: 0.6307 | G prob: 0.5132 | mse: 0.4600\n",
      "Epoch 10/20 | Step 18/45\n",
      "G loss: 1.0038 | D loss: 1.3020 | D prob: 0.4555 | G prob: 0.3776 | mse: 0.4795\n",
      "Epoch 10/20 | Step 19/45\n",
      "G loss: 0.5794 | D loss: 1.2599 | D prob: 0.6794 | G prob: 0.5675 | mse: 0.4684\n",
      "Epoch 10/20 | Step 20/45\n",
      "G loss: 1.2626 | D loss: 1.4168 | D prob: 0.3692 | G prob: 0.2932 | mse: 0.4540\n",
      "Epoch 10/20 | Step 21/45\n",
      "G loss: 0.5075 | D loss: 1.2590 | D prob: 0.7495 | G prob: 0.6084 | mse: 0.4669\n",
      "Epoch 10/20 | Step 22/45\n",
      "G loss: 1.3004 | D loss: 1.4782 | D prob: 0.3402 | G prob: 0.2846 | mse: 0.4580\n",
      "Epoch 10/20 | Step 23/45\n",
      "G loss: 0.4343 | D loss: 1.3770 | D prob: 0.7569 | G prob: 0.6538 | mse: 0.4544\n",
      "Epoch 10/20 | Step 24/45\n",
      "G loss: 1.1888 | D loss: 1.3907 | D prob: 0.3890 | G prob: 0.3160 | mse: 0.4520\n",
      "Epoch 10/20 | Step 25/45\n",
      "G loss: 0.4916 | D loss: 1.3276 | D prob: 0.7208 | G prob: 0.6190 | mse: 0.4529\n",
      "Epoch 10/20 | Step 26/45\n",
      "G loss: 1.3555 | D loss: 1.4046 | D prob: 0.3635 | G prob: 0.2676 | mse: 0.4611\n",
      "Epoch 10/20 | Step 27/45\n",
      "G loss: 0.3523 | D loss: 1.5336 | D prob: 0.7678 | G prob: 0.7073 | mse: 0.4284\n",
      "Epoch 10/20 | Step 28/45\n",
      "G loss: 1.3726 | D loss: 1.5010 | D prob: 0.3210 | G prob: 0.2667 | mse: 0.4452\n",
      "Epoch 10/20 | Step 29/45\n",
      "G loss: 0.5888 | D loss: 1.2830 | D prob: 0.6557 | G prob: 0.5625 | mse: 0.4444\n",
      "Epoch 10/20 | Step 30/45\n",
      "G loss: 1.0354 | D loss: 1.2550 | D prob: 0.4686 | G prob: 0.3653 | mse: 0.4395\n",
      "Epoch 10/20 | Step 31/45\n",
      "G loss: 0.7028 | D loss: 1.2477 | D prob: 0.5993 | G prob: 0.5031 | mse: 0.4548\n",
      "Epoch 10/20 | Step 32/45\n",
      "G loss: 1.0802 | D loss: 1.2824 | D prob: 0.4467 | G prob: 0.3505 | mse: 0.4258\n",
      "Epoch 10/20 | Step 33/45\n",
      "G loss: 0.7546 | D loss: 1.2280 | D prob: 0.5868 | G prob: 0.4809 | mse: 0.4633\n",
      "Epoch 10/20 | Step 34/45\n",
      "G loss: 1.1643 | D loss: 1.3348 | D prob: 0.4161 | G prob: 0.3244 | mse: 0.4728\n",
      "Epoch 10/20 | Step 35/45\n",
      "G loss: 0.5047 | D loss: 1.3376 | D prob: 0.6971 | G prob: 0.6100 | mse: 0.4546\n",
      "Epoch 10/20 | Step 36/45\n",
      "G loss: 1.3374 | D loss: 1.5067 | D prob: 0.3258 | G prob: 0.2730 | mse: 0.4526\n",
      "Epoch 10/20 | Step 37/45\n",
      "G loss: 0.3999 | D loss: 1.4316 | D prob: 0.7629 | G prob: 0.6751 | mse: 0.4571\n",
      "Epoch 10/20 | Step 38/45\n",
      "G loss: 1.6099 | D loss: 1.5362 | D prob: 0.2968 | G prob: 0.2099 | mse: 0.4381\n",
      "Epoch 10/20 | Step 39/45\n",
      "G loss: 0.3472 | D loss: 1.5059 | D prob: 0.7983 | G prob: 0.7109 | mse: 0.4332\n",
      "Epoch 10/20 | Step 40/45\n",
      "G loss: 1.2427 | D loss: 1.3443 | D prob: 0.3996 | G prob: 0.3022 | mse: 0.4468\n",
      "Epoch 10/20 | Step 41/45\n",
      "G loss: 0.5115 | D loss: 1.3378 | D prob: 0.7050 | G prob: 0.6077 | mse: 0.4529\n",
      "Epoch 10/20 | Step 42/45\n",
      "G loss: 0.8363 | D loss: 1.2583 | D prob: 0.5435 | G prob: 0.4466 | mse: 0.4590\n",
      "Epoch 10/20 | Step 43/45\n",
      "G loss: 0.8025 | D loss: 1.2442 | D prob: 0.5572 | G prob: 0.4599 | mse: 0.4433\n",
      "Epoch 10/20 | Step 44/45\n",
      "G loss: 0.6956 | D loss: 1.2407 | D prob: 0.6063 | G prob: 0.5062 | mse: 0.4441\n",
      "Epoch 10/20 | Step 45/45\n",
      "G loss: 0.8715 | D loss: 1.2908 | D prob: 0.5016 | G prob: 0.4298 | mse: 0.4483\n",
      "Epoch 11/20 | Step 0/45\n",
      "G loss: 0.7100 | D loss: 1.1838 | D prob: 0.6312 | G prob: 0.4998 | mse: 0.4363\n",
      "Epoch 11/20 | Step 1/45\n",
      "G loss: 0.9199 | D loss: 1.2667 | D prob: 0.4981 | G prob: 0.4081 | mse: 0.4515\n",
      "Epoch 11/20 | Step 2/45\n",
      "G loss: 0.6267 | D loss: 1.2074 | D prob: 0.6817 | G prob: 0.5443 | mse: 0.4339\n",
      "Epoch 11/20 | Step 3/45\n",
      "G loss: 1.2617 | D loss: 1.4329 | D prob: 0.3664 | G prob: 0.2954 | mse: 0.4601\n",
      "Epoch 11/20 | Step 4/45\n",
      "G loss: 0.3237 | D loss: 1.5483 | D prob: 0.8100 | G prob: 0.7270 | mse: 0.4363\n",
      "Epoch 11/20 | Step 5/45\n",
      "G loss: 1.5843 | D loss: 1.5565 | D prob: 0.2969 | G prob: 0.2184 | mse: 0.4560\n",
      "Epoch 11/20 | Step 6/45\n",
      "G loss: 0.3391 | D loss: 1.5368 | D prob: 0.7949 | G prob: 0.7172 | mse: 0.4607\n",
      "Epoch 11/20 | Step 7/45\n",
      "G loss: 1.3031 | D loss: 1.3927 | D prob: 0.3736 | G prob: 0.2877 | mse: 0.4501\n",
      "Epoch 11/20 | Step 8/45\n",
      "G loss: 0.5150 | D loss: 1.3319 | D prob: 0.6927 | G prob: 0.6041 | mse: 0.4338\n",
      "Epoch 11/20 | Step 9/45\n",
      "G loss: 0.8220 | D loss: 1.2313 | D prob: 0.5592 | G prob: 0.4498 | mse: 0.4616\n",
      "Epoch 11/20 | Step 10/45\n",
      "G loss: 0.9389 | D loss: 1.3038 | D prob: 0.4807 | G prob: 0.4019 | mse: 0.4503\n",
      "Epoch 11/20 | Step 11/45\n",
      "G loss: 0.6846 | D loss: 1.2699 | D prob: 0.5987 | G prob: 0.5132 | mse: 0.4500\n",
      "Epoch 11/20 | Step 12/45\n",
      "G loss: 0.8856 | D loss: 1.2431 | D prob: 0.5183 | G prob: 0.4223 | mse: 0.4269\n",
      "Epoch 11/20 | Step 13/45\n",
      "G loss: 0.9765 | D loss: 1.2450 | D prob: 0.4917 | G prob: 0.3873 | mse: 0.4526\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 11/20 | Step 14/45\n",
      "G loss: 0.7634 | D loss: 1.2095 | D prob: 0.5902 | G prob: 0.4745 | mse: 0.4514\n",
      "Epoch 11/20 | Step 15/45\n",
      "G loss: 0.8817 | D loss: 1.2492 | D prob: 0.5228 | G prob: 0.4253 | mse: 0.4692\n",
      "Epoch 11/20 | Step 16/45\n",
      "G loss: 0.8666 | D loss: 1.2233 | D prob: 0.5363 | G prob: 0.4299 | mse: 0.4480\n",
      "Epoch 11/20 | Step 17/45\n",
      "G loss: 0.8056 | D loss: 1.2214 | D prob: 0.5620 | G prob: 0.4555 | mse: 0.4478\n",
      "Epoch 11/20 | Step 18/45\n",
      "G loss: 1.1956 | D loss: 1.2820 | D prob: 0.4283 | G prob: 0.3153 | mse: 0.4396\n",
      "Epoch 11/20 | Step 19/45\n",
      "G loss: 0.3943 | D loss: 1.4300 | D prob: 0.7872 | G prob: 0.6810 | mse: 0.4388\n",
      "Epoch 11/20 | Step 20/45\n",
      "G loss: 1.4042 | D loss: 1.5056 | D prob: 0.3303 | G prob: 0.2565 | mse: 0.4535\n",
      "Epoch 11/20 | Step 21/45\n",
      "G loss: 0.3281 | D loss: 1.5402 | D prob: 0.8111 | G prob: 0.7241 | mse: 0.4391\n",
      "Epoch 11/20 | Step 22/45\n",
      "G loss: 1.2174 | D loss: 1.3976 | D prob: 0.3816 | G prob: 0.3097 | mse: 0.4508\n",
      "Epoch 11/20 | Step 23/45\n",
      "G loss: 0.3573 | D loss: 1.5087 | D prob: 0.7885 | G prob: 0.7046 | mse: 0.4516\n",
      "Epoch 11/20 | Step 24/45\n",
      "G loss: 1.1060 | D loss: 1.3261 | D prob: 0.4291 | G prob: 0.3434 | mse: 0.4508\n",
      "Epoch 11/20 | Step 25/45\n",
      "G loss: 0.5912 | D loss: 1.2689 | D prob: 0.6759 | G prob: 0.5639 | mse: 0.4570\n",
      "Epoch 11/20 | Step 26/45\n",
      "G loss: 0.7152 | D loss: 1.3302 | D prob: 0.5622 | G prob: 0.5008 | mse: 0.4517\n",
      "Epoch 11/20 | Step 27/45\n",
      "G loss: 0.8987 | D loss: 1.2578 | D prob: 0.5172 | G prob: 0.4204 | mse: 0.4479\n",
      "Epoch 11/20 | Step 28/45\n",
      "G loss: 0.6435 | D loss: 1.2305 | D prob: 0.6431 | G prob: 0.5315 | mse: 0.4506\n",
      "Epoch 11/20 | Step 29/45\n",
      "G loss: 1.0623 | D loss: 1.3400 | D prob: 0.4344 | G prob: 0.3559 | mse: 0.4469\n",
      "Epoch 11/20 | Step 30/45\n",
      "G loss: 0.5025 | D loss: 1.3427 | D prob: 0.6935 | G prob: 0.6104 | mse: 0.4385\n",
      "Epoch 11/20 | Step 31/45\n",
      "G loss: 1.2824 | D loss: 1.3966 | D prob: 0.3749 | G prob: 0.2910 | mse: 0.4639\n",
      "Epoch 11/20 | Step 32/45\n",
      "G loss: 0.3875 | D loss: 1.4653 | D prob: 0.7641 | G prob: 0.6840 | mse: 0.4474\n",
      "Epoch 11/20 | Step 33/45\n",
      "G loss: 1.3345 | D loss: 1.3623 | D prob: 0.3769 | G prob: 0.2764 | mse: 0.4588\n",
      "Epoch 11/20 | Step 34/45\n",
      "G loss: 0.4740 | D loss: 1.3620 | D prob: 0.7218 | G prob: 0.6298 | mse: 0.4463\n",
      "Epoch 11/20 | Step 35/45\n",
      "G loss: 1.0182 | D loss: 1.3607 | D prob: 0.4299 | G prob: 0.3742 | mse: 0.4479\n",
      "Epoch 11/20 | Step 36/45\n",
      "G loss: 0.6684 | D loss: 1.2667 | D prob: 0.6139 | G prob: 0.5230 | mse: 0.4391\n",
      "Epoch 11/20 | Step 37/45\n",
      "G loss: 0.8180 | D loss: 1.2729 | D prob: 0.5321 | G prob: 0.4531 | mse: 0.4384\n",
      "Epoch 11/20 | Step 38/45\n",
      "G loss: 0.9294 | D loss: 1.2644 | D prob: 0.4950 | G prob: 0.4047 | mse: 0.4468\n",
      "Epoch 11/20 | Step 39/45\n",
      "G loss: 0.7165 | D loss: 1.2763 | D prob: 0.5727 | G prob: 0.4964 | mse: 0.4479\n",
      "Epoch 11/20 | Step 40/45\n",
      "G loss: 0.9956 | D loss: 1.3052 | D prob: 0.4548 | G prob: 0.3782 | mse: 0.4556\n",
      "Epoch 11/20 | Step 41/45\n",
      "G loss: 0.6981 | D loss: 1.2644 | D prob: 0.5921 | G prob: 0.5048 | mse: 0.4455\n",
      "Epoch 11/20 | Step 42/45\n",
      "G loss: 1.5555 | D loss: 1.4920 | D prob: 0.3223 | G prob: 0.2220 | mse: 0.4593\n",
      "Epoch 11/20 | Step 43/45\n",
      "G loss: 0.3160 | D loss: 1.5665 | D prob: 0.8257 | G prob: 0.7341 | mse: 0.4590\n",
      "Epoch 11/20 | Step 44/45\n",
      "G loss: 1.5343 | D loss: 1.5430 | D prob: 0.3099 | G prob: 0.2293 | mse: 0.4471\n",
      "Epoch 11/20 | Step 45/45\n",
      "G loss: 0.3491 | D loss: 1.5425 | D prob: 0.7674 | G prob: 0.7095 | mse: 0.4850\n",
      "Epoch 12/20 | Step 0/45\n",
      "G loss: 1.2313 | D loss: 1.3746 | D prob: 0.3981 | G prob: 0.3059 | mse: 0.4604\n",
      "Epoch 12/20 | Step 1/45\n",
      "G loss: 0.4731 | D loss: 1.3333 | D prob: 0.7342 | G prob: 0.6286 | mse: 0.4477\n",
      "Epoch 12/20 | Step 2/45\n",
      "G loss: 1.0646 | D loss: 1.2665 | D prob: 0.4623 | G prob: 0.3569 | mse: 0.4351\n",
      "Epoch 12/20 | Step 3/45\n",
      "G loss: 0.7808 | D loss: 1.3024 | D prob: 0.5375 | G prob: 0.4678 | mse: 0.4324\n",
      "Epoch 12/20 | Step 4/45\n",
      "G loss: 0.6000 | D loss: 1.3005 | D prob: 0.6462 | G prob: 0.5576 | mse: 0.4369\n",
      "Epoch 12/20 | Step 5/45\n",
      "G loss: 1.1957 | D loss: 1.4123 | D prob: 0.3766 | G prob: 0.3129 | mse: 0.4330\n",
      "Epoch 12/20 | Step 6/45\n",
      "G loss: 0.4943 | D loss: 1.3469 | D prob: 0.7117 | G prob: 0.6177 | mse: 0.4448\n",
      "Epoch 12/20 | Step 7/45\n",
      "G loss: 1.1668 | D loss: 1.2997 | D prob: 0.4321 | G prob: 0.3272 | mse: 0.4571\n",
      "Epoch 12/20 | Step 8/45\n",
      "G loss: 0.5715 | D loss: 1.2888 | D prob: 0.6679 | G prob: 0.5722 | mse: 0.4408\n",
      "Epoch 12/20 | Step 9/45\n",
      "G loss: 0.9361 | D loss: 1.3403 | D prob: 0.4610 | G prob: 0.4054 | mse: 0.4371\n",
      "Epoch 12/20 | Step 10/45\n",
      "G loss: 0.5859 | D loss: 1.2949 | D prob: 0.6471 | G prob: 0.5631 | mse: 0.4571\n",
      "Epoch 12/20 | Step 11/45\n",
      "G loss: 1.2708 | D loss: 1.4424 | D prob: 0.3590 | G prob: 0.2897 | mse: 0.4394\n",
      "Epoch 12/20 | Step 12/45\n",
      "G loss: 0.4121 | D loss: 1.4323 | D prob: 0.7460 | G prob: 0.6668 | mse: 0.4463\n",
      "Epoch 12/20 | Step 13/45\n",
      "G loss: 1.2658 | D loss: 1.4187 | D prob: 0.3733 | G prob: 0.2975 | mse: 0.4333\n",
      "Epoch 12/20 | Step 14/45\n",
      "G loss: 0.4507 | D loss: 1.4129 | D prob: 0.7105 | G prob: 0.6432 | mse: 0.4455\n",
      "Epoch 12/20 | Step 15/45\n",
      "G loss: 1.0458 | D loss: 1.4026 | D prob: 0.4108 | G prob: 0.3649 | mse: 0.4481\n",
      "Epoch 12/20 | Step 16/45\n",
      "G loss: 0.5836 | D loss: 1.3145 | D prob: 0.6420 | G prob: 0.5652 | mse: 0.4565\n",
      "Epoch 12/20 | Step 17/45\n",
      "G loss: 1.0967 | D loss: 1.3338 | D prob: 0.4225 | G prob: 0.3457 | mse: 0.4579\n",
      "Epoch 12/20 | Step 18/45\n",
      "G loss: 0.7300 | D loss: 1.2229 | D prob: 0.6020 | G prob: 0.4926 | mse: 0.4422\n",
      "Epoch 12/20 | Step 19/45\n",
      "G loss: 0.8568 | D loss: 1.2944 | D prob: 0.5069 | G prob: 0.4351 | mse: 0.4401\n",
      "Epoch 12/20 | Step 20/45\n",
      "G loss: 0.8956 | D loss: 1.2727 | D prob: 0.4951 | G prob: 0.4153 | mse: 0.4334\n",
      "Epoch 12/20 | Step 21/45\n",
      "G loss: 0.7245 | D loss: 1.2440 | D prob: 0.5872 | G prob: 0.4922 | mse: 0.4507\n",
      "Epoch 12/20 | Step 22/45\n",
      "G loss: 0.9009 | D loss: 1.3023 | D prob: 0.4886 | G prob: 0.4162 | mse: 0.4384\n",
      "Epoch 12/20 | Step 23/45\n",
      "G loss: 0.6106 | D loss: 1.3061 | D prob: 0.6261 | G prob: 0.5496 | mse: 0.4612\n",
      "Epoch 12/20 | Step 24/45\n",
      "G loss: 1.0024 | D loss: 1.2738 | D prob: 0.4784 | G prob: 0.3784 | mse: 0.4644\n",
      "Epoch 12/20 | Step 25/45\n",
      "G loss: 0.4998 | D loss: 1.3408 | D prob: 0.6988 | G prob: 0.6126 | mse: 0.4451\n",
      "Epoch 12/20 | Step 26/45\n",
      "G loss: 1.2607 | D loss: 1.4026 | D prob: 0.3720 | G prob: 0.2963 | mse: 0.4802\n",
      "Epoch 12/20 | Step 27/45\n",
      "G loss: 0.4062 | D loss: 1.4316 | D prob: 0.7533 | G prob: 0.6709 | mse: 0.4589\n",
      "Epoch 12/20 | Step 28/45\n",
      "G loss: 1.3674 | D loss: 1.4911 | D prob: 0.3336 | G prob: 0.2647 | mse: 0.4574\n",
      "Epoch 12/20 | Step 29/45\n",
      "G loss: 0.4368 | D loss: 1.3904 | D prob: 0.7434 | G prob: 0.6515 | mse: 0.4516\n",
      "Epoch 12/20 | Step 30/45\n",
      "G loss: 1.0935 | D loss: 1.3450 | D prob: 0.4227 | G prob: 0.3474 | mse: 0.4337\n",
      "Epoch 12/20 | Step 31/45\n",
      "G loss: 0.5772 | D loss: 1.3170 | D prob: 0.6502 | G prob: 0.5697 | mse: 0.4395\n",
      "Epoch 12/20 | Step 32/45\n",
      "G loss: 0.8937 | D loss: 1.3121 | D prob: 0.4860 | G prob: 0.4192 | mse: 0.4608\n",
      "Epoch 12/20 | Step 33/45\n",
      "G loss: 0.5382 | D loss: 1.3429 | D prob: 0.6569 | G prob: 0.5895 | mse: 0.4440\n",
      "Epoch 12/20 | Step 34/45\n",
      "G loss: 1.0432 | D loss: 1.2968 | D prob: 0.4525 | G prob: 0.3624 | mse: 0.4428\n",
      "Epoch 12/20 | Step 35/45\n",
      "G loss: 0.4469 | D loss: 1.4214 | D prob: 0.7131 | G prob: 0.6466 | mse: 0.4379\n",
      "Epoch 12/20 | Step 36/45\n",
      "G loss: 1.4839 | D loss: 1.6280 | D prob: 0.2808 | G prob: 0.2407 | mse: 0.4729\n",
      "Epoch 12/20 | Step 37/45\n",
      "G loss: 0.3436 | D loss: 1.5215 | D prob: 0.8114 | G prob: 0.7154 | mse: 0.4569\n",
      "Epoch 12/20 | Step 38/45\n",
      "G loss: 1.2206 | D loss: 1.5121 | D prob: 0.3462 | G prob: 0.3083 | mse: 0.4696\n",
      "Epoch 12/20 | Step 39/45\n",
      "G loss: 0.3844 | D loss: 1.4912 | D prob: 0.7528 | G prob: 0.6866 | mse: 0.4485\n",
      "Epoch 12/20 | Step 40/45\n",
      "G loss: 1.0564 | D loss: 1.4074 | D prob: 0.4066 | G prob: 0.3600 | mse: 0.4542\n",
      "Epoch 12/20 | Step 41/45\n",
      "G loss: 0.6984 | D loss: 1.2740 | D prob: 0.5902 | G prob: 0.5068 | mse: 0.4468\n",
      "Epoch 12/20 | Step 42/45\n",
      "G loss: 0.7733 | D loss: 1.2930 | D prob: 0.5501 | G prob: 0.4717 | mse: 0.4511\n",
      "Epoch 12/20 | Step 43/45\n",
      "G loss: 0.8203 | D loss: 1.3418 | D prob: 0.5053 | G prob: 0.4529 | mse: 0.4420\n",
      "Epoch 12/20 | Step 44/45\n",
      "G loss: 0.7709 | D loss: 1.2837 | D prob: 0.5579 | G prob: 0.4756 | mse: 0.4518\n",
      "Epoch 12/20 | Step 45/45\n",
      "G loss: 0.9303 | D loss: 1.3406 | D prob: 0.4721 | G prob: 0.4054 | mse: 0.4208\n",
      "Epoch 13/20 | Step 0/45\n",
      "G loss: 0.5487 | D loss: 1.3123 | D prob: 0.6752 | G prob: 0.5857 | mse: 0.4445\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 13/20 | Step 1/45\n",
      "G loss: 1.6156 | D loss: 1.6591 | D prob: 0.2771 | G prob: 0.2080 | mse: 0.4336\n",
      "Epoch 13/20 | Step 2/45\n",
      "G loss: 0.2338 | D loss: 1.7733 | D prob: 0.8612 | G prob: 0.7939 | mse: 0.4485\n",
      "Epoch 13/20 | Step 3/45\n",
      "G loss: 1.5945 | D loss: 1.6615 | D prob: 0.2776 | G prob: 0.2154 | mse: 0.4577\n",
      "Epoch 13/20 | Step 4/45\n",
      "G loss: 0.4415 | D loss: 1.3825 | D prob: 0.7499 | G prob: 0.6498 | mse: 0.4557\n",
      "Epoch 13/20 | Step 5/45\n",
      "G loss: 1.0605 | D loss: 1.3540 | D prob: 0.4340 | G prob: 0.3589 | mse: 0.4633\n",
      "Epoch 13/20 | Step 6/45\n",
      "G loss: 0.6123 | D loss: 1.2708 | D prob: 0.6526 | G prob: 0.5517 | mse: 0.4372\n",
      "Epoch 13/20 | Step 7/45\n",
      "G loss: 0.9008 | D loss: 1.3366 | D prob: 0.4775 | G prob: 0.4200 | mse: 0.4552\n",
      "Epoch 13/20 | Step 8/45\n",
      "G loss: 0.8188 | D loss: 1.2547 | D prob: 0.5446 | G prob: 0.4516 | mse: 0.4439\n",
      "Epoch 13/20 | Step 9/45\n",
      "G loss: 0.7176 | D loss: 1.2812 | D prob: 0.5776 | G prob: 0.4976 | mse: 0.4431\n",
      "Epoch 13/20 | Step 10/45\n",
      "G loss: 0.8263 | D loss: 1.2569 | D prob: 0.5406 | G prob: 0.4482 | mse: 0.4457\n",
      "Epoch 13/20 | Step 11/45\n",
      "G loss: 0.7285 | D loss: 1.3080 | D prob: 0.5592 | G prob: 0.4923 | mse: 0.4467\n",
      "Epoch 13/20 | Step 12/45\n",
      "G loss: 0.7377 | D loss: 1.2863 | D prob: 0.5626 | G prob: 0.4870 | mse: 0.4526\n",
      "Epoch 13/20 | Step 13/45\n",
      "G loss: 1.0971 | D loss: 1.3172 | D prob: 0.4299 | G prob: 0.3450 | mse: 0.4572\n",
      "Epoch 13/20 | Step 14/45\n",
      "G loss: 0.4411 | D loss: 1.4183 | D prob: 0.7269 | G prob: 0.6510 | mse: 0.4480\n",
      "Epoch 13/20 | Step 15/45\n",
      "G loss: 1.4277 | D loss: 1.6262 | D prob: 0.2882 | G prob: 0.2566 | mse: 0.4568\n",
      "Epoch 13/20 | Step 16/45\n",
      "G loss: 0.3121 | D loss: 1.6087 | D prob: 0.8086 | G prob: 0.7374 | mse: 0.4514\n",
      "Epoch 13/20 | Step 17/45\n",
      "G loss: 1.5176 | D loss: 1.7142 | D prob: 0.2636 | G prob: 0.2335 | mse: 0.4414\n",
      "Epoch 13/20 | Step 18/45\n",
      "G loss: 0.3611 | D loss: 1.5234 | D prob: 0.7579 | G prob: 0.7008 | mse: 0.4522\n",
      "Epoch 13/20 | Step 19/45\n",
      "G loss: 0.9060 | D loss: 1.3171 | D prob: 0.4820 | G prob: 0.4140 | mse: 0.4624\n",
      "Epoch 13/20 | Step 20/45\n",
      "G loss: 0.7239 | D loss: 1.2984 | D prob: 0.5654 | G prob: 0.4939 | mse: 0.4397\n",
      "Epoch 13/20 | Step 21/45\n",
      "G loss: 0.7147 | D loss: 1.2992 | D prob: 0.5687 | G prob: 0.4978 | mse: 0.4515\n",
      "Epoch 13/20 | Step 22/45\n",
      "G loss: 0.9671 | D loss: 1.3885 | D prob: 0.4363 | G prob: 0.3922 | mse: 0.4473\n",
      "Epoch 13/20 | Step 23/45\n",
      "G loss: 0.7617 | D loss: 1.2742 | D prob: 0.5533 | G prob: 0.4738 | mse: 0.4522\n",
      "Epoch 13/20 | Step 24/45\n",
      "G loss: 0.9612 | D loss: 1.3271 | D prob: 0.4610 | G prob: 0.3923 | mse: 0.4582\n",
      "Epoch 13/20 | Step 25/45\n",
      "G loss: 0.4715 | D loss: 1.4061 | D prob: 0.6903 | G prob: 0.6306 | mse: 0.4294\n",
      "Epoch 13/20 | Step 26/45\n",
      "G loss: 1.6221 | D loss: 1.8312 | D prob: 0.2299 | G prob: 0.2079 | mse: 0.4645\n",
      "Epoch 13/20 | Step 27/45\n",
      "G loss: 0.2280 | D loss: 1.8140 | D prob: 0.8634 | G prob: 0.7991 | mse: 0.4573\n",
      "Epoch 13/20 | Step 28/45\n",
      "G loss: 1.2053 | D loss: 1.4955 | D prob: 0.3499 | G prob: 0.3127 | mse: 0.4630\n",
      "Epoch 13/20 | Step 29/45\n",
      "G loss: 0.4304 | D loss: 1.4516 | D prob: 0.7088 | G prob: 0.6559 | mse: 0.4392\n",
      "Epoch 13/20 | Step 30/45\n",
      "G loss: 0.8858 | D loss: 1.3400 | D prob: 0.4756 | G prob: 0.4227 | mse: 0.4541\n",
      "Epoch 13/20 | Step 31/45\n",
      "G loss: 0.6647 | D loss: 1.2894 | D prob: 0.6005 | G prob: 0.5232 | mse: 0.4636\n",
      "Epoch 13/20 | Step 32/45\n",
      "G loss: 0.8130 | D loss: 1.2853 | D prob: 0.5288 | G prob: 0.4563 | mse: 0.4552\n",
      "Epoch 13/20 | Step 33/45\n",
      "G loss: 0.9097 | D loss: 1.3128 | D prob: 0.4774 | G prob: 0.4121 | mse: 0.4504\n",
      "Epoch 13/20 | Step 34/45\n",
      "G loss: 0.7583 | D loss: 1.3072 | D prob: 0.5445 | G prob: 0.4795 | mse: 0.4382\n",
      "Epoch 13/20 | Step 35/45\n",
      "G loss: 0.9924 | D loss: 1.3366 | D prob: 0.4477 | G prob: 0.3809 | mse: 0.4478\n",
      "Epoch 13/20 | Step 36/45\n",
      "G loss: 0.8175 | D loss: 1.3229 | D prob: 0.5106 | G prob: 0.4537 | mse: 0.4463\n",
      "Epoch 13/20 | Step 37/45\n",
      "G loss: 0.8699 | D loss: 1.3589 | D prob: 0.4752 | G prob: 0.4297 | mse: 0.4533\n",
      "Epoch 13/20 | Step 38/45\n",
      "G loss: 0.6101 | D loss: 1.3714 | D prob: 0.5908 | G prob: 0.5516 | mse: 0.4521\n",
      "Epoch 13/20 | Step 39/45\n",
      "G loss: 1.3768 | D loss: 1.5784 | D prob: 0.3124 | G prob: 0.2662 | mse: 0.4572\n",
      "Epoch 13/20 | Step 40/45\n",
      "G loss: 0.3258 | D loss: 1.5907 | D prob: 0.7828 | G prob: 0.7267 | mse: 0.4269\n",
      "Epoch 13/20 | Step 41/45\n",
      "G loss: 1.9313 | D loss: 1.9852 | D prob: 0.1883 | G prob: 0.1562 | mse: 0.4409\n",
      "Epoch 13/20 | Step 42/45\n",
      "G loss: 0.1836 | D loss: 1.9716 | D prob: 0.8968 | G prob: 0.8345 | mse: 0.4257\n",
      "Epoch 13/20 | Step 43/45\n",
      "G loss: 0.9554 | D loss: 1.4000 | D prob: 0.4414 | G prob: 0.3990 | mse: 0.4513\n",
      "Epoch 13/20 | Step 44/45\n",
      "G loss: 0.4982 | D loss: 1.4034 | D prob: 0.6781 | G prob: 0.6168 | mse: 0.4695\n",
      "Epoch 13/20 | Step 45/45\n",
      "G loss: 0.4930 | D loss: 1.3940 | D prob: 0.6815 | G prob: 0.6187 | mse: 0.4698\n",
      "Epoch 14/20 | Step 0/45\n",
      "G loss: 0.7817 | D loss: 1.3112 | D prob: 0.5339 | G prob: 0.4693 | mse: 0.4621\n",
      "Epoch 14/20 | Step 1/45\n",
      "G loss: 0.5891 | D loss: 1.3382 | D prob: 0.6300 | G prob: 0.5634 | mse: 0.4627\n",
      "Epoch 14/20 | Step 2/45\n",
      "G loss: 0.8338 | D loss: 1.3168 | D prob: 0.5069 | G prob: 0.4460 | mse: 0.4592\n",
      "Epoch 14/20 | Step 3/45\n",
      "G loss: 0.8160 | D loss: 1.3349 | D prob: 0.5038 | G prob: 0.4509 | mse: 0.4521\n",
      "Epoch 14/20 | Step 4/45\n",
      "G loss: 0.7470 | D loss: 1.2714 | D prob: 0.5687 | G prob: 0.4843 | mse: 0.4278\n",
      "Epoch 14/20 | Step 5/45\n",
      "G loss: 0.7441 | D loss: 1.2881 | D prob: 0.5551 | G prob: 0.4826 | mse: 0.4496\n",
      "Epoch 14/20 | Step 6/45\n",
      "G loss: 0.8033 | D loss: 1.2988 | D prob: 0.5274 | G prob: 0.4580 | mse: 0.4420\n",
      "Epoch 14/20 | Step 7/45\n",
      "G loss: 0.7060 | D loss: 1.3082 | D prob: 0.5704 | G prob: 0.5031 | mse: 0.4380\n",
      "Epoch 14/20 | Step 8/45\n",
      "G loss: 0.8583 | D loss: 1.2965 | D prob: 0.5099 | G prob: 0.4332 | mse: 0.4616\n",
      "Epoch 14/20 | Step 9/45\n",
      "G loss: 0.7046 | D loss: 1.2990 | D prob: 0.5646 | G prob: 0.5005 | mse: 0.4398\n",
      "Epoch 14/20 | Step 10/45\n",
      "G loss: 0.9009 | D loss: 1.3637 | D prob: 0.4576 | G prob: 0.4149 | mse: 0.4371\n",
      "Epoch 14/20 | Step 11/45\n",
      "G loss: 0.6722 | D loss: 1.2646 | D prob: 0.6042 | G prob: 0.5172 | mse: 0.4805\n",
      "Epoch 14/20 | Step 12/45\n",
      "G loss: 0.9044 | D loss: 1.3515 | D prob: 0.4681 | G prob: 0.4142 | mse: 0.4605\n",
      "Epoch 14/20 | Step 13/45\n",
      "G loss: 0.5046 | D loss: 1.3470 | D prob: 0.6935 | G prob: 0.6105 | mse: 0.4710\n",
      "Epoch 14/20 | Step 14/45\n",
      "G loss: 1.5988 | D loss: 1.8331 | D prob: 0.2241 | G prob: 0.2121 | mse: 0.4628\n",
      "Epoch 14/20 | Step 15/45\n",
      "G loss: 0.2741 | D loss: 1.6921 | D prob: 0.8236 | G prob: 0.7641 | mse: 0.4634\n",
      "Epoch 14/20 | Step 16/45\n",
      "G loss: 1.5258 | D loss: 1.7320 | D prob: 0.2552 | G prob: 0.2341 | mse: 0.4706\n",
      "Epoch 14/20 | Step 17/45\n",
      "G loss: 0.4833 | D loss: 1.3702 | D prob: 0.7082 | G prob: 0.6244 | mse: 0.4441\n",
      "Epoch 14/20 | Step 18/45\n",
      "G loss: 0.9316 | D loss: 1.3932 | D prob: 0.4402 | G prob: 0.4059 | mse: 0.4401\n",
      "Epoch 14/20 | Step 19/45\n",
      "G loss: 0.7800 | D loss: 1.3264 | D prob: 0.5239 | G prob: 0.4692 | mse: 0.4533\n",
      "Epoch 14/20 | Step 20/45\n",
      "G loss: 0.6375 | D loss: 1.3320 | D prob: 0.5987 | G prob: 0.5380 | mse: 0.4666\n",
      "Epoch 14/20 | Step 21/45\n",
      "G loss: 1.0511 | D loss: 1.4445 | D prob: 0.3950 | G prob: 0.3626 | mse: 0.4481\n",
      "Epoch 14/20 | Step 22/45\n",
      "G loss: 0.5043 | D loss: 1.4002 | D prob: 0.6537 | G prob: 0.6093 | mse: 0.4573\n",
      "Epoch 14/20 | Step 23/45\n",
      "G loss: 1.4202 | D loss: 1.5693 | D prob: 0.2990 | G prob: 0.2523 | mse: 0.4545\n",
      "Epoch 14/20 | Step 24/45\n",
      "G loss: 0.3270 | D loss: 1.5713 | D prob: 0.7861 | G prob: 0.7246 | mse: 0.4523\n",
      "Epoch 14/20 | Step 25/45\n",
      "G loss: 1.5501 | D loss: 1.7570 | D prob: 0.2453 | G prob: 0.2261 | mse: 0.4487\n",
      "Epoch 14/20 | Step 26/45\n",
      "G loss: 0.3438 | D loss: 1.5619 | D prob: 0.7666 | G prob: 0.7141 | mse: 0.4438\n",
      "Epoch 14/20 | Step 27/45\n",
      "G loss: 0.8796 | D loss: 1.3689 | D prob: 0.4808 | G prob: 0.4288 | mse: 0.4851\n",
      "Epoch 14/20 | Step 28/45\n",
      "G loss: 0.6784 | D loss: 1.3512 | D prob: 0.5661 | G prob: 0.5184 | mse: 0.4527\n",
      "Epoch 14/20 | Step 29/45\n",
      "G loss: 0.6307 | D loss: 1.3270 | D prob: 0.6021 | G prob: 0.5402 | mse: 0.4689\n",
      "Epoch 14/20 | Step 30/45\n",
      "G loss: 0.9456 | D loss: 1.2981 | D prob: 0.4765 | G prob: 0.3966 | mse: 0.4743\n",
      "Epoch 14/20 | Step 31/45\n",
      "G loss: 0.6840 | D loss: 1.2808 | D prob: 0.5982 | G prob: 0.5144 | mse: 0.4576\n",
      "Epoch 14/20 | Step 32/45\n",
      "G loss: 0.9495 | D loss: 1.3440 | D prob: 0.4531 | G prob: 0.3968 | mse: 0.4594\n",
      "Epoch 14/20 | Step 33/45\n",
      "G loss: 0.6352 | D loss: 1.3319 | D prob: 0.5904 | G prob: 0.5366 | mse: 0.4624\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 14/20 | Step 34/45\n",
      "G loss: 1.0752 | D loss: 1.4050 | D prob: 0.4034 | G prob: 0.3535 | mse: 0.4469\n",
      "Epoch 14/20 | Step 35/45\n",
      "G loss: 0.4949 | D loss: 1.3558 | D prob: 0.6952 | G prob: 0.6155 | mse: 0.4502\n",
      "Epoch 14/20 | Step 36/45\n",
      "G loss: 1.2158 | D loss: 1.5307 | D prob: 0.3361 | G prob: 0.3081 | mse: 0.4462\n",
      "Epoch 14/20 | Step 37/45\n",
      "G loss: 0.3605 | D loss: 1.5224 | D prob: 0.7586 | G prob: 0.7012 | mse: 0.4531\n",
      "Epoch 14/20 | Step 38/45\n",
      "G loss: 1.1479 | D loss: 1.5698 | D prob: 0.3345 | G prob: 0.3311 | mse: 0.4585\n",
      "Epoch 14/20 | Step 39/45\n",
      "G loss: 0.3820 | D loss: 1.4867 | D prob: 0.7582 | G prob: 0.6887 | mse: 0.4778\n",
      "Epoch 14/20 | Step 40/45\n",
      "G loss: 0.8327 | D loss: 1.3811 | D prob: 0.4763 | G prob: 0.4446 | mse: 0.4562\n",
      "Epoch 14/20 | Step 41/45\n",
      "G loss: 0.6055 | D loss: 1.3992 | D prob: 0.5788 | G prob: 0.5522 | mse: 0.4481\n",
      "Epoch 14/20 | Step 42/45\n",
      "G loss: 0.6523 | D loss: 1.3157 | D prob: 0.5928 | G prob: 0.5292 | mse: 0.4566\n",
      "Epoch 14/20 | Step 43/45\n",
      "G loss: 0.9886 | D loss: 1.3122 | D prob: 0.4607 | G prob: 0.3838 | mse: 0.4442\n",
      "Epoch 14/20 | Step 44/45\n",
      "G loss: 0.5043 | D loss: 1.3532 | D prob: 0.6902 | G prob: 0.6106 | mse: 0.4443\n",
      "Epoch 14/20 | Step 45/45\n",
      "G loss: 0.9884 | D loss: 1.3676 | D prob: 0.4339 | G prob: 0.3836 | mse: 0.4545\n",
      "Epoch 15/20 | Step 0/45\n",
      "G loss: 0.4696 | D loss: 1.4404 | D prob: 0.6831 | G prob: 0.6350 | mse: 0.4454\n",
      "Epoch 15/20 | Step 1/45\n",
      "G loss: 0.9629 | D loss: 1.3581 | D prob: 0.4464 | G prob: 0.3957 | mse: 0.4586\n",
      "Epoch 15/20 | Step 2/45\n",
      "G loss: 0.5251 | D loss: 1.3708 | D prob: 0.6638 | G prob: 0.6005 | mse: 0.4694\n",
      "Epoch 15/20 | Step 3/45\n",
      "G loss: 0.8284 | D loss: 1.3350 | D prob: 0.4995 | G prob: 0.4462 | mse: 0.4721\n",
      "Epoch 15/20 | Step 4/45\n",
      "G loss: 0.7202 | D loss: 1.3292 | D prob: 0.5445 | G prob: 0.4945 | mse: 0.4578\n",
      "Epoch 15/20 | Step 5/45\n",
      "G loss: 1.0032 | D loss: 1.3467 | D prob: 0.4512 | G prob: 0.3806 | mse: 0.4513\n",
      "Epoch 15/20 | Step 6/45\n",
      "G loss: 0.6855 | D loss: 1.2976 | D prob: 0.5911 | G prob: 0.5149 | mse: 0.4419\n",
      "Epoch 15/20 | Step 7/45\n",
      "G loss: 1.1521 | D loss: 1.3707 | D prob: 0.4060 | G prob: 0.3303 | mse: 0.4476\n",
      "Epoch 15/20 | Step 8/45\n",
      "G loss: 0.4887 | D loss: 1.3806 | D prob: 0.6835 | G prob: 0.6195 | mse: 0.4428\n",
      "Epoch 15/20 | Step 9/45\n",
      "G loss: 1.4286 | D loss: 1.6408 | D prob: 0.2839 | G prob: 0.2526 | mse: 0.4498\n",
      "Epoch 15/20 | Step 10/45\n",
      "G loss: 0.2640 | D loss: 1.7182 | D prob: 0.8231 | G prob: 0.7711 | mse: 0.4389\n",
      "Epoch 15/20 | Step 11/45\n",
      "G loss: 1.3691 | D loss: 1.5970 | D prob: 0.3011 | G prob: 0.2655 | mse: 0.4483\n",
      "Epoch 15/20 | Step 12/45\n",
      "G loss: 0.3820 | D loss: 1.4961 | D prob: 0.7509 | G prob: 0.6878 | mse: 0.4566\n",
      "Epoch 15/20 | Step 13/45\n",
      "G loss: 0.9905 | D loss: 1.4666 | D prob: 0.4016 | G prob: 0.3850 | mse: 0.4543\n",
      "Epoch 15/20 | Step 14/45\n",
      "G loss: 0.5447 | D loss: 1.3776 | D prob: 0.6355 | G prob: 0.5877 | mse: 0.4368\n",
      "Epoch 15/20 | Step 15/45\n",
      "G loss: 0.9694 | D loss: 1.4719 | D prob: 0.3962 | G prob: 0.3912 | mse: 0.4430\n",
      "Epoch 15/20 | Step 16/45\n",
      "G loss: 0.8159 | D loss: 1.3138 | D prob: 0.5176 | G prob: 0.4533 | mse: 0.4385\n",
      "Epoch 15/20 | Step 17/45\n",
      "G loss: 0.6436 | D loss: 1.3302 | D prob: 0.5863 | G prob: 0.5329 | mse: 0.4245\n",
      "Epoch 15/20 | Step 18/45\n",
      "G loss: 1.2842 | D loss: 1.5686 | D prob: 0.3201 | G prob: 0.2922 | mse: 0.4623\n",
      "Epoch 15/20 | Step 19/45\n",
      "G loss: 0.3055 | D loss: 1.6106 | D prob: 0.7987 | G prob: 0.7400 | mse: 0.4615\n",
      "Epoch 15/20 | Step 20/45\n",
      "G loss: 1.4813 | D loss: 1.6783 | D prob: 0.2645 | G prob: 0.2369 | mse: 0.4502\n",
      "Epoch 15/20 | Step 21/45\n",
      "G loss: 0.3515 | D loss: 1.5477 | D prob: 0.7576 | G prob: 0.7077 | mse: 0.4624\n",
      "Epoch 15/20 | Step 22/45\n",
      "G loss: 0.9586 | D loss: 1.3528 | D prob: 0.4541 | G prob: 0.3953 | mse: 0.4383\n",
      "Epoch 15/20 | Step 23/45\n",
      "G loss: 0.5250 | D loss: 1.4010 | D prob: 0.6373 | G prob: 0.5978 | mse: 0.4524\n",
      "Epoch 15/20 | Step 24/45\n",
      "G loss: 0.7390 | D loss: 1.3028 | D prob: 0.5514 | G prob: 0.4873 | mse: 0.4748\n",
      "Epoch 15/20 | Step 25/45\n",
      "G loss: 1.0022 | D loss: 1.3842 | D prob: 0.4313 | G prob: 0.3806 | mse: 0.4489\n",
      "Epoch 15/20 | Step 26/45\n",
      "G loss: 0.5086 | D loss: 1.3745 | D prob: 0.6680 | G prob: 0.6070 | mse: 0.4412\n",
      "Epoch 15/20 | Step 27/45\n",
      "G loss: 1.1606 | D loss: 1.5058 | D prob: 0.3586 | G prob: 0.3286 | mse: 0.4379\n",
      "Epoch 15/20 | Step 28/45\n",
      "G loss: 0.5742 | D loss: 1.3529 | D prob: 0.6281 | G prob: 0.5701 | mse: 0.4613\n",
      "Epoch 15/20 | Step 29/45\n",
      "G loss: 0.9179 | D loss: 1.3188 | D prob: 0.4772 | G prob: 0.4084 | mse: 0.4437\n",
      "Epoch 15/20 | Step 30/45\n",
      "G loss: 0.7789 | D loss: 1.2961 | D prob: 0.5398 | G prob: 0.4684 | mse: 0.4911\n",
      "Epoch 15/20 | Step 31/45\n",
      "G loss: 0.6028 | D loss: 1.3776 | D prob: 0.5935 | G prob: 0.5554 | mse: 0.4454\n",
      "Epoch 15/20 | Step 32/45\n",
      "G loss: 1.1170 | D loss: 1.4420 | D prob: 0.3898 | G prob: 0.3417 | mse: 0.4546\n",
      "Epoch 15/20 | Step 33/45\n",
      "G loss: 0.3992 | D loss: 1.5049 | D prob: 0.7217 | G prob: 0.6769 | mse: 0.4673\n",
      "Epoch 15/20 | Step 34/45\n",
      "G loss: 1.4401 | D loss: 1.6592 | D prob: 0.2842 | G prob: 0.2525 | mse: 0.4562\n",
      "Epoch 15/20 | Step 35/45\n",
      "G loss: 0.2835 | D loss: 1.6670 | D prob: 0.8140 | G prob: 0.7566 | mse: 0.4331\n",
      "Epoch 15/20 | Step 36/45\n",
      "G loss: 1.3869 | D loss: 1.6579 | D prob: 0.2854 | G prob: 0.2631 | mse: 0.4685\n",
      "Epoch 15/20 | Step 37/45\n",
      "G loss: 0.3646 | D loss: 1.5505 | D prob: 0.7461 | G prob: 0.7005 | mse: 0.4597\n",
      "Epoch 15/20 | Step 38/45\n",
      "G loss: 0.9368 | D loss: 1.3979 | D prob: 0.4383 | G prob: 0.4044 | mse: 0.4604\n",
      "Epoch 15/20 | Step 39/45\n",
      "G loss: 0.6679 | D loss: 1.3246 | D prob: 0.5795 | G prob: 0.5232 | mse: 0.4700\n",
      "Epoch 15/20 | Step 40/45\n",
      "G loss: 0.6621 | D loss: 1.3330 | D prob: 0.5771 | G prob: 0.5253 | mse: 0.4399\n",
      "Epoch 15/20 | Step 41/45\n",
      "G loss: 1.0704 | D loss: 1.3904 | D prob: 0.4065 | G prob: 0.3554 | mse: 0.4761\n",
      "Epoch 15/20 | Step 42/45\n",
      "G loss: 0.5770 | D loss: 1.3960 | D prob: 0.6021 | G prob: 0.5706 | mse: 0.4552\n",
      "Epoch 15/20 | Step 43/45\n",
      "G loss: 1.0982 | D loss: 1.4651 | D prob: 0.3754 | G prob: 0.3429 | mse: 0.4379\n",
      "Epoch 15/20 | Step 44/45\n",
      "G loss: 0.5463 | D loss: 1.3558 | D prob: 0.6533 | G prob: 0.5882 | mse: 0.4418\n",
      "Epoch 15/20 | Step 45/45\n",
      "G loss: 1.2471 | D loss: 1.6174 | D prob: 0.3024 | G prob: 0.2965 | mse: 0.4471\n",
      "Epoch 16/20 | Step 0/45\n",
      "G loss: 0.4454 | D loss: 1.4107 | D prob: 0.7198 | G prob: 0.6468 | mse: 0.4404\n",
      "Epoch 16/20 | Step 1/45\n",
      "G loss: 1.1401 | D loss: 1.4627 | D prob: 0.3655 | G prob: 0.3323 | mse: 0.4584\n",
      "Epoch 16/20 | Step 2/45\n",
      "G loss: 0.3588 | D loss: 1.5492 | D prob: 0.7517 | G prob: 0.7038 | mse: 0.4467\n",
      "Epoch 16/20 | Step 3/45\n",
      "G loss: 1.2205 | D loss: 1.4758 | D prob: 0.3527 | G prob: 0.3070 | mse: 0.4476\n",
      "Epoch 16/20 | Step 4/45\n",
      "G loss: 0.4561 | D loss: 1.4171 | D prob: 0.6953 | G prob: 0.6390 | mse: 0.4559\n",
      "Epoch 16/20 | Step 5/45\n",
      "G loss: 0.8925 | D loss: 1.3433 | D prob: 0.4729 | G prob: 0.4218 | mse: 0.4625\n",
      "Epoch 16/20 | Step 6/45\n",
      "G loss: 0.5648 | D loss: 1.3634 | D prob: 0.6281 | G prob: 0.5766 | mse: 0.4573\n",
      "Epoch 16/20 | Step 7/45\n",
      "G loss: 0.7416 | D loss: 1.3067 | D prob: 0.5524 | G prob: 0.4867 | mse: 0.4487\n",
      "Epoch 16/20 | Step 8/45\n",
      "G loss: 0.6893 | D loss: 1.3421 | D prob: 0.5602 | G prob: 0.5114 | mse: 0.4516\n",
      "Epoch 16/20 | Step 9/45\n",
      "G loss: 0.7598 | D loss: 1.3157 | D prob: 0.5324 | G prob: 0.4770 | mse: 0.4469\n",
      "Epoch 16/20 | Step 10/45\n",
      "G loss: 0.9099 | D loss: 1.3247 | D prob: 0.4765 | G prob: 0.4123 | mse: 0.4590\n",
      "Epoch 16/20 | Step 11/45\n",
      "G loss: 0.5421 | D loss: 1.3694 | D prob: 0.6392 | G prob: 0.5875 | mse: 0.4680\n",
      "Epoch 16/20 | Step 12/45\n",
      "G loss: 1.1127 | D loss: 1.4444 | D prob: 0.3898 | G prob: 0.3462 | mse: 0.4623\n",
      "Epoch 16/20 | Step 13/45\n",
      "G loss: 0.4294 | D loss: 1.4310 | D prob: 0.7277 | G prob: 0.6569 | mse: 0.4479\n",
      "Epoch 16/20 | Step 14/45\n",
      "G loss: 1.1143 | D loss: 1.4095 | D prob: 0.3967 | G prob: 0.3404 | mse: 0.4661\n",
      "Epoch 16/20 | Step 15/45\n",
      "G loss: 0.4516 | D loss: 1.4325 | D prob: 0.6991 | G prob: 0.6433 | mse: 0.4745\n",
      "Epoch 16/20 | Step 16/45\n",
      "G loss: 0.8863 | D loss: 1.3903 | D prob: 0.4614 | G prob: 0.4263 | mse: 0.4615\n",
      "Epoch 16/20 | Step 17/45\n",
      "G loss: 0.7501 | D loss: 1.3670 | D prob: 0.5215 | G prob: 0.4830 | mse: 0.4629\n",
      "Epoch 16/20 | Step 18/45\n",
      "G loss: 0.6608 | D loss: 1.3665 | D prob: 0.5580 | G prob: 0.5242 | mse: 0.4497\n",
      "Epoch 16/20 | Step 19/45\n",
      "G loss: 0.9375 | D loss: 1.3831 | D prob: 0.4398 | G prob: 0.4017 | mse: 0.4426\n",
      "Epoch 16/20 | Step 20/45\n",
      "G loss: 0.7753 | D loss: 1.2984 | D prob: 0.5357 | G prob: 0.4701 | mse: 0.4606\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 16/20 | Step 21/45\n",
      "G loss: 1.0130 | D loss: 1.4081 | D prob: 0.4129 | G prob: 0.3753 | mse: 0.4406\n",
      "Epoch 16/20 | Step 22/45\n",
      "G loss: 0.4430 | D loss: 1.4633 | D prob: 0.6893 | G prob: 0.6484 | mse: 0.4376\n",
      "Epoch 16/20 | Step 23/45\n",
      "G loss: 1.6028 | D loss: 1.7655 | D prob: 0.2414 | G prob: 0.2132 | mse: 0.4524\n",
      "Epoch 16/20 | Step 24/45\n",
      "G loss: 0.1700 | D loss: 2.0554 | D prob: 0.8884 | G prob: 0.8456 | mse: 0.4590\n",
      "Epoch 16/20 | Step 25/45\n",
      "G loss: 1.4033 | D loss: 1.6614 | D prob: 0.2870 | G prob: 0.2640 | mse: 0.4777\n",
      "Epoch 16/20 | Step 26/45\n",
      "G loss: 0.3176 | D loss: 1.6526 | D prob: 0.7643 | G prob: 0.7341 | mse: 0.4335\n",
      "Epoch 16/20 | Step 27/45\n",
      "G loss: 1.0892 | D loss: 1.4577 | D prob: 0.3861 | G prob: 0.3516 | mse: 0.4594\n",
      "Epoch 16/20 | Step 28/45\n",
      "G loss: 0.5799 | D loss: 1.4292 | D prob: 0.5935 | G prob: 0.5709 | mse: 0.4442\n",
      "Epoch 16/20 | Step 29/45\n",
      "G loss: 0.6823 | D loss: 1.4036 | D prob: 0.5283 | G prob: 0.5142 | mse: 0.4382\n",
      "Epoch 16/20 | Step 30/45\n",
      "G loss: 0.9623 | D loss: 1.4073 | D prob: 0.4239 | G prob: 0.3910 | mse: 0.4236\n",
      "Epoch 16/20 | Step 31/45\n",
      "G loss: 0.6989 | D loss: 1.3330 | D prob: 0.5519 | G prob: 0.5040 | mse: 0.4125\n",
      "Epoch 16/20 | Step 32/45\n",
      "G loss: 0.7581 | D loss: 1.2842 | D prob: 0.5443 | G prob: 0.4746 | mse: 0.4364\n",
      "Epoch 16/20 | Step 33/45\n",
      "G loss: 0.8509 | D loss: 1.2779 | D prob: 0.5128 | G prob: 0.4354 | mse: 0.4693\n",
      "Epoch 16/20 | Step 34/45\n",
      "G loss: 0.6919 | D loss: 1.3507 | D prob: 0.5557 | G prob: 0.5108 | mse: 0.4758\n",
      "Epoch 16/20 | Step 35/45\n",
      "G loss: 0.6044 | D loss: 1.3815 | D prob: 0.5908 | G prob: 0.5540 | mse: 0.4678\n",
      "Epoch 16/20 | Step 36/45\n",
      "G loss: 1.0082 | D loss: 1.3893 | D prob: 0.4243 | G prob: 0.3743 | mse: 0.4544\n",
      "Epoch 16/20 | Step 37/45\n",
      "G loss: 0.4933 | D loss: 1.4340 | D prob: 0.6436 | G prob: 0.6166 | mse: 0.4468\n",
      "Epoch 16/20 | Step 38/45\n",
      "G loss: 1.1909 | D loss: 1.5302 | D prob: 0.3398 | G prob: 0.3176 | mse: 0.4527\n",
      "Epoch 16/20 | Step 39/45\n",
      "G loss: 0.4409 | D loss: 1.4469 | D prob: 0.7012 | G prob: 0.6493 | mse: 0.4645\n",
      "Epoch 16/20 | Step 40/45\n",
      "G loss: 1.1439 | D loss: 1.4002 | D prob: 0.4016 | G prob: 0.3348 | mse: 0.4570\n",
      "Epoch 16/20 | Step 41/45\n",
      "G loss: 0.4440 | D loss: 1.4538 | D prob: 0.7064 | G prob: 0.6503 | mse: 0.4790\n",
      "Epoch 16/20 | Step 42/45\n",
      "G loss: 0.8631 | D loss: 1.4267 | D prob: 0.4463 | G prob: 0.4330 | mse: 0.4554\n",
      "Epoch 16/20 | Step 43/45\n",
      "G loss: 0.7670 | D loss: 1.3388 | D prob: 0.5168 | G prob: 0.4729 | mse: 0.4684\n",
      "Epoch 16/20 | Step 44/45\n",
      "G loss: 0.6918 | D loss: 1.3351 | D prob: 0.5574 | G prob: 0.5102 | mse: 0.4561\n",
      "Epoch 16/20 | Step 45/45\n",
      "G loss: 1.0802 | D loss: 1.4871 | D prob: 0.3726 | G prob: 0.3495 | mse: 0.4597\n",
      "Epoch 17/20 | Step 0/45\n",
      "G loss: 0.4773 | D loss: 1.4120 | D prob: 0.6773 | G prob: 0.6259 | mse: 0.4596\n",
      "Epoch 17/20 | Step 1/45\n",
      "G loss: 0.8721 | D loss: 1.3714 | D prob: 0.4644 | G prob: 0.4274 | mse: 0.4437\n",
      "Epoch 17/20 | Step 2/45\n",
      "G loss: 0.4414 | D loss: 1.4517 | D prob: 0.6962 | G prob: 0.6489 | mse: 0.4703\n",
      "Epoch 17/20 | Step 3/45\n",
      "G loss: 1.2541 | D loss: 1.5451 | D prob: 0.3226 | G prob: 0.2979 | mse: 0.4675\n",
      "Epoch 17/20 | Step 4/45\n",
      "G loss: 0.3466 | D loss: 1.5416 | D prob: 0.7782 | G prob: 0.7121 | mse: 0.4587\n",
      "Epoch 17/20 | Step 5/45\n",
      "G loss: 1.1577 | D loss: 1.4762 | D prob: 0.3666 | G prob: 0.3253 | mse: 0.4681\n",
      "Epoch 17/20 | Step 6/45\n",
      "G loss: 0.4517 | D loss: 1.4257 | D prob: 0.7025 | G prob: 0.6431 | mse: 0.4341\n",
      "Epoch 17/20 | Step 7/45\n",
      "G loss: 1.1345 | D loss: 1.5332 | D prob: 0.3487 | G prob: 0.3351 | mse: 0.4798\n",
      "Epoch 17/20 | Step 8/45\n",
      "G loss: 0.6422 | D loss: 1.3141 | D prob: 0.5945 | G prob: 0.5325 | mse: 0.4556\n",
      "Epoch 17/20 | Step 9/45\n",
      "G loss: 1.0013 | D loss: 1.3341 | D prob: 0.4426 | G prob: 0.3777 | mse: 0.4364\n",
      "Epoch 17/20 | Step 10/45\n",
      "G loss: 0.6193 | D loss: 1.2958 | D prob: 0.6242 | G prob: 0.5458 | mse: 0.4375\n",
      "Epoch 17/20 | Step 11/45\n",
      "G loss: 0.8686 | D loss: 1.3686 | D prob: 0.4687 | G prob: 0.4309 | mse: 0.4624\n",
      "Epoch 17/20 | Step 12/45\n",
      "G loss: 0.5226 | D loss: 1.3584 | D prob: 0.6635 | G prob: 0.5989 | mse: 0.4485\n",
      "Epoch 17/20 | Step 13/45\n",
      "G loss: 1.0023 | D loss: 1.4475 | D prob: 0.3988 | G prob: 0.3762 | mse: 0.4616\n",
      "Epoch 17/20 | Step 14/45\n",
      "G loss: 0.3340 | D loss: 1.5796 | D prob: 0.7642 | G prob: 0.7198 | mse: 0.4591\n",
      "Epoch 17/20 | Step 15/45\n",
      "G loss: 1.4201 | D loss: 1.5835 | D prob: 0.2954 | G prob: 0.2512 | mse: 0.4516\n",
      "Epoch 17/20 | Step 16/45\n",
      "G loss: 0.2654 | D loss: 1.7113 | D prob: 0.8176 | G prob: 0.7701 | mse: 0.4338\n",
      "Epoch 17/20 | Step 17/45\n",
      "G loss: 1.1657 | D loss: 1.5109 | D prob: 0.3492 | G prob: 0.3240 | mse: 0.4693\n",
      "Epoch 17/20 | Step 18/45\n",
      "G loss: 0.3835 | D loss: 1.5285 | D prob: 0.7267 | G prob: 0.6871 | mse: 0.4373\n",
      "Epoch 17/20 | Step 19/45\n",
      "G loss: 1.1134 | D loss: 1.4569 | D prob: 0.3777 | G prob: 0.3414 | mse: 0.4720\n",
      "Epoch 17/20 | Step 20/45\n",
      "G loss: 0.4483 | D loss: 1.4228 | D prob: 0.7044 | G prob: 0.6441 | mse: 0.4360\n",
      "Epoch 17/20 | Step 21/45\n",
      "G loss: 1.0619 | D loss: 1.4275 | D prob: 0.3957 | G prob: 0.3562 | mse: 0.4663\n",
      "Epoch 17/20 | Step 22/45\n",
      "G loss: 0.5751 | D loss: 1.3361 | D prob: 0.6296 | G prob: 0.5684 | mse: 0.4748\n",
      "Epoch 17/20 | Step 23/45\n",
      "G loss: 0.9652 | D loss: 1.3354 | D prob: 0.4523 | G prob: 0.3907 | mse: 0.4521\n",
      "Epoch 17/20 | Step 24/45\n",
      "G loss: 0.5345 | D loss: 1.3497 | D prob: 0.6710 | G prob: 0.5953 | mse: 0.4563\n",
      "Epoch 17/20 | Step 25/45\n",
      "G loss: 1.2574 | D loss: 1.4832 | D prob: 0.3458 | G prob: 0.2970 | mse: 0.4474\n",
      "Epoch 17/20 | Step 26/45\n",
      "G loss: 0.3720 | D loss: 1.5165 | D prob: 0.7450 | G prob: 0.6938 | mse: 0.4529\n",
      "Epoch 17/20 | Step 27/45\n",
      "G loss: 1.3460 | D loss: 1.6663 | D prob: 0.2791 | G prob: 0.2723 | mse: 0.4492\n",
      "Epoch 17/20 | Step 28/45\n",
      "G loss: 0.4385 | D loss: 1.4475 | D prob: 0.6998 | G prob: 0.6507 | mse: 0.4314\n",
      "Epoch 17/20 | Step 29/45\n",
      "G loss: 1.2221 | D loss: 1.4019 | D prob: 0.3737 | G prob: 0.3032 | mse: 0.4417\n",
      "Epoch 17/20 | Step 30/45\n",
      "G loss: 0.4043 | D loss: 1.4769 | D prob: 0.7254 | G prob: 0.6725 | mse: 0.4602\n",
      "Epoch 17/20 | Step 31/45\n",
      "G loss: 1.0214 | D loss: 1.4288 | D prob: 0.4039 | G prob: 0.3709 | mse: 0.4463\n",
      "Epoch 17/20 | Step 32/45\n",
      "G loss: 0.6579 | D loss: 1.2937 | D prob: 0.5997 | G prob: 0.5252 | mse: 0.4436\n",
      "Epoch 17/20 | Step 33/45\n",
      "G loss: 0.8350 | D loss: 1.3649 | D prob: 0.4813 | G prob: 0.4451 | mse: 0.4671\n",
      "Epoch 17/20 | Step 34/45\n",
      "G loss: 0.5611 | D loss: 1.4062 | D prob: 0.5962 | G prob: 0.5758 | mse: 0.4450\n",
      "Epoch 17/20 | Step 35/45\n",
      "G loss: 0.9633 | D loss: 1.4453 | D prob: 0.4062 | G prob: 0.3915 | mse: 0.4411\n",
      "Epoch 17/20 | Step 36/45\n",
      "G loss: 0.6370 | D loss: 1.3252 | D prob: 0.5994 | G prob: 0.5369 | mse: 0.4609\n",
      "Epoch 17/20 | Step 37/45\n",
      "G loss: 0.9410 | D loss: 1.3664 | D prob: 0.4419 | G prob: 0.3984 | mse: 0.4516\n",
      "Epoch 17/20 | Step 38/45\n",
      "G loss: 0.4530 | D loss: 1.4055 | D prob: 0.7042 | G prob: 0.6406 | mse: 0.4516\n",
      "Epoch 17/20 | Step 39/45\n",
      "G loss: 1.6601 | D loss: 1.7784 | D prob: 0.2354 | G prob: 0.2027 | mse: 0.4570\n",
      "Epoch 17/20 | Step 40/45\n",
      "G loss: 0.1717 | D loss: 2.0276 | D prob: 0.8817 | G prob: 0.8436 | mse: 0.4627\n",
      "Epoch 17/20 | Step 41/45\n",
      "G loss: 1.0627 | D loss: 1.4370 | D prob: 0.3957 | G prob: 0.3589 | mse: 0.4636\n",
      "Epoch 17/20 | Step 42/45\n",
      "G loss: 0.4974 | D loss: 1.4127 | D prob: 0.6611 | G prob: 0.6154 | mse: 0.4622\n",
      "Epoch 17/20 | Step 43/45\n",
      "G loss: 0.7635 | D loss: 1.3352 | D prob: 0.5287 | G prob: 0.4764 | mse: 0.4696\n",
      "Epoch 17/20 | Step 44/45\n",
      "G loss: 0.8448 | D loss: 1.4236 | D prob: 0.4546 | G prob: 0.4414 | mse: 0.4744\n",
      "Epoch 17/20 | Step 45/45\n",
      "G loss: 0.6672 | D loss: 1.3544 | D prob: 0.5524 | G prob: 0.5188 | mse: 0.4512\n",
      "Epoch 18/20 | Step 0/45\n",
      "G loss: 1.1798 | D loss: 1.4490 | D prob: 0.3602 | G prob: 0.3179 | mse: 0.4447\n",
      "Epoch 18/20 | Step 1/45\n",
      "G loss: 0.7390 | D loss: 1.2772 | D prob: 0.5642 | G prob: 0.4860 | mse: 0.4339\n",
      "Epoch 18/20 | Step 2/45\n",
      "G loss: 1.0224 | D loss: 1.3406 | D prob: 0.4381 | G prob: 0.3698 | mse: 0.4601\n",
      "Epoch 18/20 | Step 3/45\n",
      "G loss: 0.7597 | D loss: 1.3449 | D prob: 0.5210 | G prob: 0.4777 | mse: 0.4374\n",
      "Epoch 18/20 | Step 4/45\n",
      "G loss: 0.8234 | D loss: 1.3177 | D prob: 0.5071 | G prob: 0.4474 | mse: 0.4399\n",
      "Epoch 18/20 | Step 5/45\n",
      "G loss: 0.7715 | D loss: 1.2727 | D prob: 0.5470 | G prob: 0.4698 | mse: 0.4770\n",
      "Epoch 18/20 | Step 6/45\n",
      "G loss: 0.9035 | D loss: 1.3243 | D prob: 0.4880 | G prob: 0.4155 | mse: 0.4399\n",
      "Epoch 18/20 | Step 7/45\n",
      "G loss: 0.5316 | D loss: 1.3531 | D prob: 0.6567 | G prob: 0.5933 | mse: 0.4471\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 18/20 | Step 8/45\n",
      "G loss: 1.3083 | D loss: 1.4909 | D prob: 0.3392 | G prob: 0.2826 | mse: 0.4225\n",
      "Epoch 18/20 | Step 9/45\n",
      "G loss: 0.2236 | D loss: 1.8369 | D prob: 0.8455 | G prob: 0.8019 | mse: 0.4661\n",
      "Epoch 18/20 | Step 10/45\n",
      "G loss: 1.3146 | D loss: 1.4125 | D prob: 0.3696 | G prob: 0.2796 | mse: 0.4692\n",
      "Epoch 18/20 | Step 11/45\n",
      "G loss: 0.3165 | D loss: 1.6345 | D prob: 0.7739 | G prob: 0.7332 | mse: 0.4796\n",
      "Epoch 18/20 | Step 12/45\n",
      "G loss: 0.7546 | D loss: 1.3582 | D prob: 0.5352 | G prob: 0.4883 | mse: 0.4815\n",
      "Epoch 18/20 | Step 13/45\n",
      "G loss: 0.7630 | D loss: 1.3443 | D prob: 0.5247 | G prob: 0.4782 | mse: 0.4690\n",
      "Epoch 18/20 | Step 14/45\n",
      "G loss: 0.6228 | D loss: 1.2916 | D prob: 0.6206 | G prob: 0.5423 | mse: 0.4537\n",
      "Epoch 18/20 | Step 15/45\n",
      "G loss: 1.3265 | D loss: 1.5763 | D prob: 0.3037 | G prob: 0.2778 | mse: 0.4448\n",
      "Epoch 18/20 | Step 16/45\n",
      "G loss: 0.6018 | D loss: 1.3251 | D prob: 0.6180 | G prob: 0.5552 | mse: 0.4391\n",
      "Epoch 18/20 | Step 17/45\n",
      "G loss: 1.2153 | D loss: 1.5893 | D prob: 0.3125 | G prob: 0.3063 | mse: 0.4443\n",
      "Epoch 18/20 | Step 18/45\n",
      "G loss: 0.3853 | D loss: 1.5007 | D prob: 0.7377 | G prob: 0.6855 | mse: 0.4346\n",
      "Epoch 18/20 | Step 19/45\n",
      "G loss: 1.3575 | D loss: 1.6656 | D prob: 0.2752 | G prob: 0.2687 | mse: 0.4388\n",
      "Epoch 18/20 | Step 20/45\n",
      "G loss: 0.3038 | D loss: 1.6422 | D prob: 0.7891 | G prob: 0.7419 | mse: 0.4698\n",
      "Epoch 18/20 | Step 21/45\n",
      "G loss: 0.9083 | D loss: 1.3585 | D prob: 0.4637 | G prob: 0.4165 | mse: 0.4527\n",
      "Epoch 18/20 | Step 22/45\n",
      "G loss: 0.6376 | D loss: 1.3562 | D prob: 0.5825 | G prob: 0.5380 | mse: 0.4776\n",
      "Epoch 18/20 | Step 23/45\n",
      "G loss: 0.7633 | D loss: 1.3503 | D prob: 0.5188 | G prob: 0.4761 | mse: 0.4711\n",
      "Epoch 18/20 | Step 24/45\n",
      "G loss: 0.8342 | D loss: 1.3408 | D prob: 0.4912 | G prob: 0.4446 | mse: 0.4530\n",
      "Epoch 18/20 | Step 25/45\n",
      "G loss: 1.0333 | D loss: 1.3938 | D prob: 0.4182 | G prob: 0.3674 | mse: 0.4428\n",
      "Epoch 18/20 | Step 26/45\n",
      "G loss: 0.6145 | D loss: 1.3324 | D prob: 0.6028 | G prob: 0.5479 | mse: 0.4600\n",
      "Epoch 18/20 | Step 27/45\n",
      "G loss: 1.2802 | D loss: 1.5592 | D prob: 0.3144 | G prob: 0.2903 | mse: 0.4554\n",
      "Epoch 18/20 | Step 28/45\n",
      "G loss: 0.2778 | D loss: 1.6934 | D prob: 0.8032 | G prob: 0.7607 | mse: 0.4431\n",
      "Epoch 18/20 | Step 29/45\n",
      "G loss: 1.4454 | D loss: 1.6894 | D prob: 0.2709 | G prob: 0.2508 | mse: 0.4675\n",
      "Epoch 18/20 | Step 30/45\n",
      "G loss: 0.3602 | D loss: 1.5644 | D prob: 0.7465 | G prob: 0.7037 | mse: 0.4594\n",
      "Epoch 18/20 | Step 31/45\n",
      "G loss: 1.0143 | D loss: 1.4260 | D prob: 0.4097 | G prob: 0.3740 | mse: 0.4615\n",
      "Epoch 18/20 | Step 32/45\n",
      "G loss: 0.6967 | D loss: 1.3514 | D prob: 0.5551 | G prob: 0.5081 | mse: 0.4725\n",
      "Epoch 18/20 | Step 33/45\n",
      "G loss: 0.7377 | D loss: 1.3290 | D prob: 0.5381 | G prob: 0.4869 | mse: 0.4638\n",
      "Epoch 18/20 | Step 34/45\n",
      "G loss: 0.9681 | D loss: 1.4096 | D prob: 0.4206 | G prob: 0.3904 | mse: 0.4714\n",
      "Epoch 18/20 | Step 35/45\n",
      "G loss: 0.6302 | D loss: 1.3524 | D prob: 0.5879 | G prob: 0.5417 | mse: 0.4560\n",
      "Epoch 18/20 | Step 36/45\n",
      "G loss: 1.2328 | D loss: 1.4707 | D prob: 0.3500 | G prob: 0.3021 | mse: 0.4556\n",
      "Epoch 18/20 | Step 37/45\n",
      "G loss: 0.5385 | D loss: 1.3532 | D prob: 0.6586 | G prob: 0.5906 | mse: 0.4569\n",
      "Epoch 18/20 | Step 38/45\n",
      "G loss: 1.0453 | D loss: 1.4612 | D prob: 0.3822 | G prob: 0.3594 | mse: 0.4274\n",
      "Epoch 18/20 | Step 39/45\n",
      "G loss: 0.4559 | D loss: 1.4625 | D prob: 0.6733 | G prob: 0.6408 | mse: 0.4371\n",
      "Epoch 18/20 | Step 40/45\n",
      "G loss: 0.9090 | D loss: 1.4360 | D prob: 0.4328 | G prob: 0.4168 | mse: 0.4616\n",
      "Epoch 18/20 | Step 41/45\n",
      "G loss: 0.6858 | D loss: 1.3557 | D prob: 0.5455 | G prob: 0.5096 | mse: 0.4351\n",
      "Epoch 18/20 | Step 42/45\n",
      "G loss: 0.7170 | D loss: 1.3358 | D prob: 0.5401 | G prob: 0.4954 | mse: 0.4385\n",
      "Epoch 18/20 | Step 43/45\n",
      "G loss: 0.9023 | D loss: 1.3138 | D prob: 0.4972 | G prob: 0.4190 | mse: 0.4722\n",
      "Epoch 18/20 | Step 44/45\n",
      "G loss: 0.5251 | D loss: 1.4184 | D prob: 0.6303 | G prob: 0.5981 | mse: 0.4545\n",
      "Epoch 18/20 | Step 45/45\n",
      "G loss: 1.1163 | D loss: 1.5341 | D prob: 0.3459 | G prob: 0.3394 | mse: 0.4549\n",
      "Epoch 19/20 | Step 0/45\n",
      "G loss: 0.3613 | D loss: 1.5212 | D prob: 0.7550 | G prob: 0.7006 | mse: 0.4563\n",
      "Epoch 19/20 | Step 1/45\n",
      "G loss: 1.5284 | D loss: 1.7821 | D prob: 0.2337 | G prob: 0.2290 | mse: 0.4541\n",
      "Epoch 19/20 | Step 2/45\n",
      "G loss: 0.2861 | D loss: 1.6542 | D prob: 0.8110 | G prob: 0.7542 | mse: 0.4474\n",
      "Epoch 19/20 | Step 3/45\n",
      "G loss: 1.0464 | D loss: 1.4312 | D prob: 0.3974 | G prob: 0.3613 | mse: 0.4735\n",
      "Epoch 19/20 | Step 4/45\n",
      "G loss: 0.6237 | D loss: 1.3509 | D prob: 0.5935 | G prob: 0.5443 | mse: 0.4874\n",
      "Epoch 19/20 | Step 5/45\n",
      "G loss: 0.6743 | D loss: 1.3476 | D prob: 0.5648 | G prob: 0.5194 | mse: 0.4450\n",
      "Epoch 19/20 | Step 6/45\n",
      "G loss: 1.1691 | D loss: 1.4731 | D prob: 0.3643 | G prob: 0.3260 | mse: 0.4249\n",
      "Epoch 19/20 | Step 7/45\n",
      "G loss: 0.6339 | D loss: 1.3252 | D prob: 0.6018 | G prob: 0.5390 | mse: 0.4604\n",
      "Epoch 19/20 | Step 8/45\n",
      "G loss: 0.8869 | D loss: 1.3902 | D prob: 0.4514 | G prob: 0.4223 | mse: 0.4420\n",
      "Epoch 19/20 | Step 9/45\n",
      "G loss: 0.6432 | D loss: 1.3359 | D prob: 0.5869 | G prob: 0.5335 | mse: 0.4812\n",
      "Epoch 19/20 | Step 10/45\n",
      "G loss: 1.0281 | D loss: 1.3611 | D prob: 0.4305 | G prob: 0.3707 | mse: 0.4584\n",
      "Epoch 19/20 | Step 11/45\n",
      "G loss: 0.6226 | D loss: 1.3058 | D prob: 0.6170 | G prob: 0.5446 | mse: 0.4770\n",
      "Epoch 19/20 | Step 12/45\n",
      "G loss: 0.9481 | D loss: 1.3768 | D prob: 0.4368 | G prob: 0.3956 | mse: 0.4737\n",
      "Epoch 19/20 | Step 13/45\n",
      "G loss: 0.5020 | D loss: 1.3828 | D prob: 0.6691 | G prob: 0.6114 | mse: 0.4580\n",
      "Epoch 19/20 | Step 14/45\n",
      "G loss: 1.2251 | D loss: 1.5283 | D prob: 0.3356 | G prob: 0.3082 | mse: 0.4615\n",
      "Epoch 19/20 | Step 15/45\n",
      "G loss: 0.3429 | D loss: 1.5443 | D prob: 0.7786 | G prob: 0.7142 | mse: 0.4584\n",
      "Epoch 19/20 | Step 16/45\n",
      "G loss: 1.4442 | D loss: 1.7322 | D prob: 0.2599 | G prob: 0.2527 | mse: 0.4504\n",
      "Epoch 19/20 | Step 17/45\n",
      "G loss: 0.2256 | D loss: 1.8516 | D prob: 0.8561 | G prob: 0.8017 | mse: 0.4675\n",
      "Epoch 19/20 | Step 18/45\n",
      "G loss: 1.1358 | D loss: 1.3515 | D prob: 0.4177 | G prob: 0.3366 | mse: 0.4703\n",
      "Epoch 19/20 | Step 19/45\n",
      "G loss: 0.4922 | D loss: 1.3984 | D prob: 0.6821 | G prob: 0.6199 | mse: 0.4581\n",
      "Epoch 19/20 | Step 20/45\n",
      "G loss: 0.9974 | D loss: 1.4639 | D prob: 0.3999 | G prob: 0.3839 | mse: 0.4551\n",
      "Epoch 19/20 | Step 21/45\n",
      "G loss: 0.5778 | D loss: 1.3646 | D prob: 0.6196 | G prob: 0.5696 | mse: 0.4510\n",
      "Epoch 19/20 | Step 22/45\n",
      "G loss: 1.1853 | D loss: 1.3773 | D prob: 0.3876 | G prob: 0.3158 | mse: 0.4399\n",
      "Epoch 19/20 | Step 23/45\n",
      "G loss: 0.4404 | D loss: 1.4177 | D prob: 0.7192 | G prob: 0.6497 | mse: 0.4492\n",
      "Epoch 19/20 | Step 24/45\n",
      "G loss: 1.1541 | D loss: 1.4418 | D prob: 0.3810 | G prob: 0.3271 | mse: 0.4808\n",
      "Epoch 19/20 | Step 25/45\n",
      "G loss: 0.4308 | D loss: 1.4872 | D prob: 0.6872 | G prob: 0.6561 | mse: 0.4526\n",
      "Epoch 19/20 | Step 26/45\n",
      "G loss: 1.1280 | D loss: 1.4462 | D prob: 0.3751 | G prob: 0.3350 | mse: 0.4423\n",
      "Epoch 19/20 | Step 27/45\n",
      "G loss: 0.4802 | D loss: 1.4310 | D prob: 0.6633 | G prob: 0.6252 | mse: 0.4394\n",
      "Epoch 19/20 | Step 28/45\n",
      "G loss: 1.2515 | D loss: 1.5403 | D prob: 0.3237 | G prob: 0.2950 | mse: 0.4379\n",
      "Epoch 19/20 | Step 29/45\n",
      "G loss: 0.4760 | D loss: 1.4008 | D prob: 0.6847 | G prob: 0.6266 | mse: 0.4511\n",
      "Epoch 19/20 | Step 30/45\n",
      "G loss: 0.7701 | D loss: 1.3157 | D prob: 0.5282 | G prob: 0.4720 | mse: 0.4542\n",
      "Epoch 19/20 | Step 31/45\n",
      "G loss: 0.7672 | D loss: 1.3331 | D prob: 0.5200 | G prob: 0.4733 | mse: 0.4605\n",
      "Epoch 19/20 | Step 32/45\n",
      "G loss: 0.5387 | D loss: 1.3640 | D prob: 0.6450 | G prob: 0.5905 | mse: 0.4674\n",
      "Epoch 19/20 | Step 33/45\n",
      "G loss: 1.4702 | D loss: 1.6145 | D prob: 0.2806 | G prob: 0.2411 | mse: 0.4573\n",
      "Epoch 19/20 | Step 34/45\n",
      "G loss: 0.2914 | D loss: 1.6489 | D prob: 0.8079 | G prob: 0.7509 | mse: 0.4698\n",
      "Epoch 19/20 | Step 35/45\n",
      "G loss: 1.5164 | D loss: 1.6363 | D prob: 0.2759 | G prob: 0.2299 | mse: 0.4626\n",
      "Epoch 19/20 | Step 36/45\n",
      "G loss: 0.2968 | D loss: 1.6540 | D prob: 0.7834 | G prob: 0.7460 | mse: 0.4564\n",
      "Epoch 19/20 | Step 37/45\n",
      "G loss: 1.1649 | D loss: 1.5871 | D prob: 0.3246 | G prob: 0.3229 | mse: 0.4479\n",
      "Epoch 19/20 | Step 38/45\n",
      "G loss: 0.5756 | D loss: 1.3624 | D prob: 0.6198 | G prob: 0.5700 | mse: 0.4609\n",
      "Epoch 19/20 | Step 39/45\n",
      "G loss: 0.6854 | D loss: 1.3624 | D prob: 0.5484 | G prob: 0.5119 | mse: 0.4436\n",
      "Epoch 19/20 | Step 40/45\n",
      "G loss: 0.9463 | D loss: 1.3721 | D prob: 0.4419 | G prob: 0.3969 | mse: 0.4321\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 19/20 | Step 41/45\n",
      "G loss: 0.6899 | D loss: 1.3068 | D prob: 0.5754 | G prob: 0.5099 | mse: 0.4392\n",
      "Epoch 19/20 | Step 42/45\n",
      "G loss: 0.8193 | D loss: 1.2993 | D prob: 0.5166 | G prob: 0.4511 | mse: 0.4588\n",
      "Epoch 19/20 | Step 43/45\n",
      "G loss: 0.8435 | D loss: 1.3734 | D prob: 0.4762 | G prob: 0.4397 | mse: 0.4568\n",
      "Epoch 19/20 | Step 44/45\n",
      "G loss: 0.7429 | D loss: 1.3186 | D prob: 0.5429 | G prob: 0.4857 | mse: 0.4621\n",
      "Epoch 19/20 | Step 45/45\n",
      "G loss: 0.9394 | D loss: 1.4093 | D prob: 0.4331 | G prob: 0.4038 | mse: 0.4455\n",
      "Epoch 20/20 | Step 0/45\n",
      "G loss: 0.5791 | D loss: 1.3599 | D prob: 0.6222 | G prob: 0.5689 | mse: 0.4373\n",
      "Epoch 20/20 | Step 1/45\n",
      "G loss: 1.1595 | D loss: 1.4778 | D prob: 0.3659 | G prob: 0.3244 | mse: 0.4427\n",
      "Epoch 20/20 | Step 2/45\n",
      "G loss: 0.2960 | D loss: 1.6252 | D prob: 0.8107 | G prob: 0.7472 | mse: 0.4695\n",
      "Epoch 20/20 | Step 3/45\n",
      "G loss: 1.3273 | D loss: 1.5987 | D prob: 0.3111 | G prob: 0.2809 | mse: 0.4709\n",
      "Epoch 20/20 | Step 4/45\n",
      "G loss: 0.2716 | D loss: 1.7452 | D prob: 0.8274 | G prob: 0.7689 | mse: 0.4594\n",
      "Epoch 20/20 | Step 5/45\n",
      "G loss: 1.3884 | D loss: 1.6296 | D prob: 0.2885 | G prob: 0.2630 | mse: 0.4750\n",
      "Epoch 20/20 | Step 6/45\n",
      "G loss: 0.4352 | D loss: 1.4587 | D prob: 0.7037 | G prob: 0.6541 | mse: 0.4840\n",
      "Epoch 20/20 | Step 7/45\n",
      "G loss: 0.7844 | D loss: 1.4140 | D prob: 0.4764 | G prob: 0.4656 | mse: 0.4623\n",
      "Epoch 20/20 | Step 8/45\n",
      "G loss: 0.7288 | D loss: 1.3541 | D prob: 0.5314 | G prob: 0.4916 | mse: 0.4425\n",
      "Epoch 20/20 | Step 9/45\n",
      "G loss: 0.6594 | D loss: 1.3053 | D prob: 0.5995 | G prob: 0.5273 | mse: 0.4617\n",
      "Epoch 20/20 | Step 10/45\n",
      "G loss: 0.9083 | D loss: 1.3069 | D prob: 0.4861 | G prob: 0.4140 | mse: 0.4506\n",
      "Epoch 20/20 | Step 11/45\n",
      "G loss: 0.7637 | D loss: 1.3737 | D prob: 0.5110 | G prob: 0.4773 | mse: 0.4505\n",
      "Epoch 20/20 | Step 12/45\n",
      "G loss: 0.6050 | D loss: 1.3497 | D prob: 0.5980 | G prob: 0.5523 | mse: 0.4550\n",
      "Epoch 20/20 | Step 13/45\n",
      "G loss: 0.9433 | D loss: 1.4044 | D prob: 0.4363 | G prob: 0.4009 | mse: 0.4653\n",
      "Epoch 20/20 | Step 14/45\n",
      "G loss: 0.4158 | D loss: 1.4672 | D prob: 0.7125 | G prob: 0.6644 | mse: 0.4554\n",
      "Epoch 20/20 | Step 15/45\n",
      "G loss: 1.1809 | D loss: 1.6030 | D prob: 0.3182 | G prob: 0.3203 | mse: 0.4712\n",
      "Epoch 20/20 | Step 16/45\n",
      "G loss: 0.2846 | D loss: 1.6813 | D prob: 0.8153 | G prob: 0.7570 | mse: 0.4760\n",
      "Epoch 20/20 | Step 17/45\n",
      "G loss: 1.2390 | D loss: 1.5493 | D prob: 0.3286 | G prob: 0.3017 | mse: 0.4741\n",
      "Epoch 20/20 | Step 18/45\n",
      "G loss: 0.5291 | D loss: 1.3756 | D prob: 0.6458 | G prob: 0.5958 | mse: 0.4608\n",
      "Epoch 20/20 | Step 19/45\n",
      "G loss: 0.9083 | D loss: 1.3947 | D prob: 0.4398 | G prob: 0.4136 | mse: 0.4649\n",
      "Epoch 20/20 | Step 20/45\n",
      "G loss: 0.9324 | D loss: 1.3736 | D prob: 0.4470 | G prob: 0.4054 | mse: 0.4608\n",
      "Epoch 20/20 | Step 21/45\n",
      "G loss: 0.6194 | D loss: 1.3356 | D prob: 0.5990 | G prob: 0.5449 | mse: 0.4354\n",
      "Epoch 20/20 | Step 22/45\n",
      "G loss: 1.2829 | D loss: 1.5361 | D prob: 0.3281 | G prob: 0.2908 | mse: 0.4729\n",
      "Epoch 20/20 | Step 23/45\n",
      "G loss: 0.3882 | D loss: 1.5009 | D prob: 0.7334 | G prob: 0.6833 | mse: 0.4621\n",
      "Epoch 20/20 | Step 24/45\n",
      "G loss: 1.2249 | D loss: 1.5149 | D prob: 0.3362 | G prob: 0.3054 | mse: 0.4697\n",
      "Epoch 20/20 | Step 25/45\n",
      "G loss: 0.3581 | D loss: 1.5605 | D prob: 0.7335 | G prob: 0.7028 | mse: 0.4350\n",
      "Epoch 20/20 | Step 26/45\n",
      "G loss: 1.4719 | D loss: 1.6587 | D prob: 0.2661 | G prob: 0.2389 | mse: 0.4597\n",
      "Epoch 20/20 | Step 27/45\n",
      "G loss: 0.3952 | D loss: 1.5036 | D prob: 0.7229 | G prob: 0.6787 | mse: 0.4311\n",
      "Epoch 20/20 | Step 28/45\n",
      "G loss: 0.8722 | D loss: 1.3450 | D prob: 0.4744 | G prob: 0.4287 | mse: 0.4254\n",
      "Epoch 20/20 | Step 29/45\n",
      "G loss: 0.5821 | D loss: 1.3657 | D prob: 0.6171 | G prob: 0.5678 | mse: 0.4487\n",
      "Epoch 20/20 | Step 30/45\n",
      "G loss: 0.7429 | D loss: 1.3542 | D prob: 0.5183 | G prob: 0.4839 | mse: 0.4345\n",
      "Epoch 20/20 | Step 31/45\n",
      "G loss: 0.7704 | D loss: 1.3291 | D prob: 0.5239 | G prob: 0.4717 | mse: 0.4645\n",
      "Epoch 20/20 | Step 32/45\n",
      "G loss: 0.6053 | D loss: 1.3809 | D prob: 0.5880 | G prob: 0.5540 | mse: 0.4568\n",
      "Epoch 20/20 | Step 33/45\n",
      "G loss: 1.3233 | D loss: 1.5411 | D prob: 0.3165 | G prob: 0.2776 | mse: 0.4673\n",
      "Epoch 20/20 | Step 34/45\n",
      "G loss: 0.2600 | D loss: 1.7231 | D prob: 0.8282 | G prob: 0.7743 | mse: 0.4651\n",
      "Epoch 20/20 | Step 35/45\n",
      "G loss: 1.2622 | D loss: 1.4985 | D prob: 0.3428 | G prob: 0.2949 | mse: 0.4720\n",
      "Epoch 20/20 | Step 36/45\n",
      "G loss: 0.3363 | D loss: 1.6055 | D prob: 0.7562 | G prob: 0.7197 | mse: 0.4612\n",
      "Epoch 20/20 | Step 37/45\n",
      "G loss: 0.8652 | D loss: 1.3675 | D prob: 0.4718 | G prob: 0.4334 | mse: 0.4633\n",
      "Epoch 20/20 | Step 38/45\n",
      "G loss: 0.5338 | D loss: 1.3905 | D prob: 0.6446 | G prob: 0.5956 | mse: 0.4449\n",
      "Epoch 20/20 | Step 39/45\n",
      "G loss: 0.8892 | D loss: 1.3122 | D prob: 0.4951 | G prob: 0.4248 | mse: 0.4783\n",
      "Epoch 20/20 | Step 40/45\n",
      "G loss: 0.9774 | D loss: 1.3778 | D prob: 0.4349 | G prob: 0.3888 | mse: 0.4243\n",
      "Epoch 20/20 | Step 41/45\n",
      "G loss: 0.7406 | D loss: 1.3763 | D prob: 0.5203 | G prob: 0.4893 | mse: 0.4263\n",
      "Epoch 20/20 | Step 42/45\n",
      "G loss: 1.1312 | D loss: 1.4507 | D prob: 0.3713 | G prob: 0.3323 | mse: 0.4466\n",
      "Epoch 20/20 | Step 43/45\n",
      "G loss: 0.2908 | D loss: 1.6333 | D prob: 0.8150 | G prob: 0.7509 | mse: 0.4513\n",
      "Epoch 20/20 | Step 44/45\n",
      "G loss: 1.3725 | D loss: 1.5921 | D prob: 0.2988 | G prob: 0.2657 | mse: 0.4715\n",
      "Epoch 20/20 | Step 45/45\n",
      "G loss: 0.2436 | D loss: 1.7962 | D prob: 0.8124 | G prob: 0.7861 | mse: 0.4805\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1181ee898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "experiment(N_EPOCH = 20,\n",
    "           BATCH_SIZE = 128,\n",
    "           G_SIZE = 100,\n",
    "           DIGIT = 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
